타입 변환, 캐스팅 그리고 타입 프로모션
타입변환
데이터 타입을 다른 데이터 타입으로 변환하는 것
타입 변환에는 두 가지 종류가 있는데 하나는 자동(묵시적) 타입 변환, 다른 하나는 강제(명시적) 타입 변환이다.
캐스팅
강제적으로 큰 데이터 타입을 작은 데이터 타입으로 쪼개어서 저장하는 것을 강제 타입 변환 (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가 큰 크기 타입이다.
'Language > JAVA' 카테고리의 다른 글
3주차 과제 : 산술 연산자 (0) | 2021.02.13 |
---|---|
2주차 과제 : 타입 추론, var (0) | 2021.02.13 |
2주차 과제 : 1차 및 2차 배열 선언하기 (0) | 2021.02.13 |
2주차 과제 : 프리미티브 타입과 레퍼런스 타입 (0) | 2021.02.13 |
2주차 과제 : 프리미티브 타입의 종류와 값의 범위 그리고 기본값 (0) | 2021.02.13 |