개발야옹

[JAVA] 데이터 타입 변환 본문

Language/JAVA

[JAVA] 데이터 타입 변환

kitez 2023. 10. 18. 17:31

자바는 두 가지 형태의 데이터 타입 변환을 지원한다.

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