Estou em dúvida, pois esse código não compila
byte b1 = 5;
byte b2 = 3;
byte b3 = b1 + b2;mas esse código compila
char c = 65;
char c2 = 68 - 65;
System.out.println(c + c2);Qual é a diferença?
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Estou em dúvida, pois esse código não compila
byte b1 = 5;
byte b2 = 3;
byte b3 = b1 + b2;mas esse código compila
char c = 65;
char c2 = 68 - 65;
System.out.println(c + c2);Qual é a diferença?
Oi Delliany, tudo bem?
Por padrão, o resultado de uma operação entre dois primitivos do tipo byte em Java é convertido para int. Um int não cabe dentro de um byte, é por isso que não compila =)
https://docs.oracle.com/javase/specs/jls/se7/html/jls-5.html#jls-5.6.2
Abraço!