본문 바로가기
Back-End/Java

[Java] 형변환(casting) (묵시적 형변환, 명시적 형변환)

by 찐코딩 2021. 8. 4.

형변환(casting) 

 - 해당 데이터 값의 자료형을 다른 타입의 자료형으로 변환하는 것을 말함.
 - 형변환은 boolean형을 제외한 7가지 자료형은 서로 형변환이 가능함.

 

1. 묵시적 형변환
-  자료형의 크기가 작은 데이터를 큰 자료형의 데이터에 저장.
 - 이때는 형변환 작업을 안 해 주어도 된다.

 

 2. 명시적 형변환
 -  자료형의 크기가 큰 데이터를 작은 자료형의 데이터에 저장 시 문제가 생김,  이 때는 반드시 형변환 작업을 해 주어야 한다.
 -  자료의 손실이 발생할 수가 있음.

파란색으로 박스표시 해 놓은 곳을 보면

num2에 빨간색 밑줄 표시가 되어있는데, 이는 컴파일 오류가 발생했음을 의미한다.

 

연산자인 num2는 int자료형(4바이트)인데,

피연산자인 by2는 byte자료형(1바이트)라, 그 값을 넣으려고 하니 초과되어 오류가 나는 것이다.

 

이 때 num2앞에 (byte)를 붙여주면 명시적 형변환이 일어난다.

by2가 당초 num2 값인 150이 나오지 않고

-106이 나왔다.

byte자료형(1바이트)의 범위는 (-2^7 ~ 2^7-1) 이기 때문에 이 안에 해당하는 값인 -106이 나오게 되었음.

 


 * 형변환이 자주 일어나게 되면 프로그램이 느려질 수 있다!

댓글