Language/JAVA

2주차 과제 : 타입 변환, 캐스팅 그리고 타입 프로모션

타입 변환, 캐스팅 그리고 타입 프로모션

 

타입변환

 

데이터 타입을 다른 데이터 타입으로 변환하는 것

타입 변환에는 두 가지 종류가 있는데 하나는 자동(묵시적) 타입 변환, 다른 하나는 강제(명시적) 타입 변환이다.

 

캐스팅

 

강제적으로 큰 데이터 타입을 작은 데이터 타입으로 쪼개어서 저장하는 것을 강제 타입 변환 (Casting)이라고 한다.

이 경우에는 값이 변경 될 수 있다.

<--------------------------------------------
작은 크기 타입 = (작은 크기 타입) 큰 크기 타입

int intValue = 123456789;
byte byteValue = (byte) intValue;	// 강제 타입 변환 (캐스팅)

double doubleValue = 3.14;
int intValue = (int) doubleValue;	// intValue는 정수 부분인 3만 저장한다.

 

타입 프로모션

 

프로그램 실행 도중에 자동적으로 타입 변환이 일어나는 것을 의미한다.

자동 타입 변환은 작은 크기를 가지는 타입이 큰 크기를 가지는 타입에 저장될 때 발생한다.

프로모션의 경우엔 변환 이전의 값과 변환 이후의 값이 동일하다.

<-----(자동 타입 변환)-----
큰 크기 타입 = 작은 크기 타입
byte byteValue = 10;
int intValue = byteValue // 자동 타입 변환이 일어난다.

 

작은 크기와 큰 크기 타입의 구분은 메모리 크기로 한다.

byte 타입의 경우 1byte int 타입의 경우 4byte로 이 경우 byte가 작은 크기 타입, int가 큰 크기 타입이다.