Back-End/Java
[Java] 형변환(casting) (묵시적 형변환, 명시적 형변환)
찐코딩
2021. 8. 4. 16:26
형변환(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이 나오게 되었음.
* 형변환이 자주 일어나게 되면 프로그램이 느려질 수 있다!