Por que não preciso usar new para variáveis de tipos primitivos, como int ou float?
Resposta:
Os tipos primitivos da linguagem Java não são implementados como objetos. Em vez disso, devido a preocupações com a eficiência, eles são implementados como variáveis “comuns”. Uma variável de tipo primitivo contém o valor que damos a ela.
Como explicado, variáveis de objetos são referências ao objeto. Essa camada de endereçamento indireto (e outros recursos dos objetos) adiciona sobrecarga a um objeto que é evitada por um tipo primitivo.