Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Cast aula 7 exercício 17

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?

1 resposta
solução!

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!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software