자바는 두 가지 형태의 데이터 타입 변환을 지원한다.
1. 묵시적 타입 변환
2. 명시적 타입 변환
묵시적 타입 변환
묵지거 타입 변환(promotion)을 자동 변환이라고 하며, 말 그대로 별다른 조치 없이 자동으로 타입이 변환되는 것을 의미한다.
이런 묵시적 변환은 작은 크기의 데이터가 큰 크기의 타입으로 변환되는 경우에 한해 제공한다. 즉, 묵시적 타입 변환은 데이터의 크기와 관련되어 있다.
public class PromotionTest {
public static void main(String[] args) {
int inAvg = 87;
double doubleAvg = intAvg;
System.out.println("double로 변환된 평균값 : " + doubleAvg); // 87.0
}
}
실행 결과에서 확인할 수 있듯이 int 타입의 intAvg 값이 실수 타입인 doubleAvg 변수에 할당되는 순간 정수 87이 실수 87.0으로 변환되었다. 즉 데이터 타입이 int에서 double로 변환된 것이ㅏㄷ.
명시적 타입 변환
명시적 타입 변환(casting)은 묵시적 타입 변환의 반대이다. 즉 큰 크기의 데이터를 작은 타입의 데이터로 변환하는 것이다.
데이터가 훼손돼도 프로그램을 처리하는 데 지장이 없다면 타입 변환을 통해 필요한 만큼의 데이터만 사용할 수도 있다.
public class CastingTest {
public static void main(String[] args) {
double doubleAvg = 87.24;
int intAvg = (int) doubleAvg;
System.out.println(intAvg); // 87
}
}
위 소스는 8byte의 값을 4byte의 변수에 할당한다. 이때 명시적 타입 변환을 통해 소수점 이하의 데이터를 잘라내고 있다. 따라서 intAvg 변수에 할당된 값은 double이 아닌 int로 변환된 87이다.
728x90
'Language > JAVA' 카테고리의 다른 글
[JAVA] 배열 (0) | 2023.10.18 |
---|---|
[JAVA] 이름이 있는 break (0) | 2023.10.18 |
[JAVA] 연산자 (1) | 2023.10.17 |
[JAVA] 데이터 타입 (1) | 2023.10.17 |
[JAVA] 자바 변수 (0) | 2023.10.17 |