byte b = 1 + 1;
정수 리터럴은 기본적으로 int.
CPU에서 연산 최소 단위는 int.
그러므로 1 + 1은 int + int = int다.
그런데 대입하려는 정수 리터럴 값이 byte 허용 범위 안에 있으면
컴파일러가 자동으로 byte로 바꾸어줘서 대입해줌.
그래서 아무 문제가 없음.
여기까지가 'Do it 자바 완전 정복' 읽고 이해한 바임.
그런데 복습하려고 읽은 '혼자 공부하는 자바'에서는
리터럴 간의 연산은 컴파일 단계에서 수행하기 때문에 타입 변환이 없다고 함.
본인이 보기에는 타입 변환이 일어날 수 밖에 없어 보여서 이 말이 이해가 안 감.
누가 좀 설명 좀
댓글 0