앱 만들기/안드로이드 study

자바- 정수 연산에서 자동 캐스팅 주의할 점.

나도처음이야 2021. 6. 2.

자바 캐스팅 중 주의 할 점은 하기와 같다.

 

byte a= 5 , b = 10;

byte c = a + b ;

 

위 구문은 정상적으로 컴파일 될까?

그렇지 않다. 피연산자로 사용된 a,b 변수는 int 로 자동 캐스팅 되기때문에

이때 반환값을 받는 byte c 는 int c 가 되어야 한다.

참고로, int 보다 작은 할당크기를 가지는 타입인 char, byte, short 등은 위 와 같은 연산에서 자동으로 int 로 캐스팅 된다.

 

[ Correct ]

byte a, b = 10

int c = a + b

 

그럼 하나더 살펴보자.

 

byte c = 5 + 10;

 

정답부터 이야기 하자면 위는 int 형으로 강제 캐스팅 되지 않는다.

15라는 값을 컴파일 단계에서 계산한뒤 byte c 를 통해 15가 저장된 메모리 공간을 가리킬 뿐이다. 

감사합니다 :)

반응형

댓글