CH2-3 · MODEL

숫자 변환과 정밀도: 먼저 구분할 경계

서로 다른 숫자 타입을 계산하면 Java는 정해진 승격 규칙에 따라 공통 타입을 선택합니다.

핵심 경계

이항 연산은 먼저 타입을 승격한다

byte + byte의 결과가 byte가 아니라 int인 이유는 산술 연산이 최소 int 정밀도에서 이루어지기 때문입니다.

핵심 경계

확대 변환도 모든 값을 정확히 보존하지는 않는다

int를 long으로 옮기면 정확하지만 큰 long을 double로 바꾸면 정밀도를 잃을 수 있습니다.

핵심 경계

축소 변환은 범위를 먼저 검사한다

(int) longValue는 상위 비트를 버릴 수 있습니다.

핵심 경계 byte + byte의 결과가 byte가 아니라 int인 이유는 산술 연산이 최소 int 정밀도에서 이루어지기 때문입니다.