본문 바로가기

[2016 - 2019] 학부 정리/Java

[자바복습] 1. 타입변환

[타입변환]

1. 자동 타입 변환

 자동타입변환은 프로그램 실행 도중에 자동적으로 타입 변환이 일어나는 것을 말한다. 자동타입변환은 작은 크기를 가지는 타입이 큰 크기를 가지는 타입에 저장될 때 발생한다.

큰 크기 타입 <= 작은 크기 타입 (큰 크기, 작은 크기의 구분은 사용하는 메모리 크기)+1.참조

값이 변환이후에도 손실 없이 그대로 보존된다. char 타입의 경우 int 타입으로 자동 변환되면 유니코드 값이 저장된다.

예외) char 2byte크기를 가지지만 음수가 저장될 수 없다. 따라서 음수가 저장되는 byte타입을 char타입으로 자동 변환 시킬 수 없다.

 

2. 강제 타입 변환(Casting)

 강제타입변환은 강제적으로 큰 데이터 타입을 작은 데이터 타입으로 쪼개서 저장하는 것이다. 강제타입변환은 캐스팅 연산자( )를 사용하는데, 괄호 안에 들어가는 타입은 쪼개는 단위이다.

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

 

Ex.

int intValue = 19028749;

byte byteValue = (byte) intValue;

 

* 데이터가 달라짐(쓰레기 값이 들어간다. )

int intValue = 10;

byte byteValue = (byte) intValue;

 

* 1byte로 표현 가능한 범위는 값이 달라지지 않는다.

 

 

+1.

byte(1) < short(2) < int(4) < long(8) < float(4) < double(8)

floatlong보다 표현할 수 있는 값의 범위가 크기 때문에