하나의 타입을 다른 타입으로 바꾸는 것을 타입 변환이라고 한다.
자바에서는 boolean을 제외한 나머지 기본 타입 간의 타입 변환을 할 수 있다.
자동 형변환이란 두 데이터 타입이 자동으로 변환이 이루어지는 것을 말한다.
자바에서는 데이터의 손실이 발생하지 않거나 손실이 최소화되는 방향으로 타입 변환을 진행하며 범위가 작은 데이터 값을 더 큰 데이터 타입으로 할당하는 경우에만 동작한다.
다음과 같은 방향으로 타입 변환이 이루어진다.
byte형 → short형 → int형 → long형 → float형 → double형
char형 ↗
int intNum = 100;
long longNum = intNum;
float floatNum = longNum;
명시적 형변환은 범위가 큰 타입의 값을 작은 타입으로 할당하기 위해서 사용한다
(변환할타입)변환할데이터
위와 같이 명시적 형변환을 수행할 수 있다.
char a = 'a';
int num = 100;
a = (char)num
타입 프로모션은 캐스팅과 반대로 작은 타입의 값을 큰 타입에 할당하는 것이다.
데이터 손실이 없으므로 자동으로 형변환이 일어난다.
short a = 100;
int b = a