java 에서 기본 자료형 byte 에 대한 의문...

sia79의 이미지

byte a = 1;
byte b = 2;
byte c = a + b;

java 에서 위와 같이 자료형을 선언하면 c 에서 컴파일 에러가 발생하는데 원인이 무엇일까요?

익명 사용자의 이미지

http://docs.oracle.com/javase/specs/jls/se7/html/jls-5.html#jls-5.6.2

자바에서 산술연산 표현에서 byte나 short은 int로 변환됩니다.
int값을 byte 변수에 저장하려고하니 에러를 낼 수 밖에요.
만약에 연산 결과가 byte가 표현할 수 있는 범위를 벗어나지 않는다고 확신하면 명시적으로 캐스팅을 하실 수는 있습니다.