Em java, é mais eficiente usar byte ou short em vez de int e float em vez de double?

Tenho notado que sempre usei int e doubles, não importa quão pequeno ou grande o número precise ser. Então, em java, é mais eficiente usarbyte oushort ao invés deint efloat ao invés dedouble?

Então, suponha que eu tenha um programa com muitos ints e doubles. Valeria a pena passar e mudar meus ints para bytes ou shorts se eu soubesse que o número caberia?

Eu sei que o java não tem tipos não assinados, mas há algo extra que eu poderia fazer se soubesse que o número seria positivo apenas?

Por eficiente eu principalmente quero dizer processamento. Eu diria que o coletor de lixo seria muito mais rápido se todas as variáveis ​​tivessem metade do tamanho e que os cálculos provavelmente seriam um pouco mais rápidos também. (Eu acho que desde que eu estou trabalhando no Android eu preciso me preocupar um pouco com ram também)

(Eu diria que o coletor de lixo lida apenas com objetos e não primitivo, mas ainda exclui todas as primitivas em objetos abandonados, certo?)

Eu tentei com um pequeno aplicativo Android que eu tenho, mas realmente não percebi a diferença em tudo. (Embora eu não tenha "cientificamente" medido nada.)

Estou errado em assumir que deveria ser mais rápido e eficiente? Eu odiaria passar e mudar tudo em um programa enorme para descobrir que perdi meu tempo.

Valeria a pena fazer desde o início quando eu começar um novo projeto? (Quero dizer, acho que cada pedacinho ajudaria, mas, novamente, em caso afirmativo, por que não parece que alguém faz isso.)

questionAnswers(6)

yourAnswerToTheQuestion