Continuando a discussão do Tamanho máximo int e outros:
Pessoal, boa noite.
Rodei o seguinte programa:
class MeuPrograma{
public static void main (String args[]){
long l = 9223372036854775807;
System.out.println(l);
}
}
Porém ao compilar, me gera o erro: integer number too large;
Como isso é possível? Esse valor cabe dentro de um variável do tipo long normalmente!
Fiquei na dúvida.
Obrigado
O problema é por conta de como o Java trata literais do tipo inteiro: https://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html
(É uma das questões que podem cair na prova de certificação
)
Toda literal é tratada como int, quando não houver sufixo. Pra resolver o problema, basta colocar um ‘L’(maiúsculo ou minúsculo) no final da literal:
long l = 9223372036854775807L;
Uma boa prática é sempre usar L ao invés de l, pra não confundir o ‘l’ minúsculo com o número 1!
Abcs!
3 curtidas