케네스로그

[Java] 타입 변환, 캐스팅, 타입 프로모션 본문

Dev/Java

[Java] 타입 변환, 캐스팅, 타입 프로모션

kenasdev 2022. 1. 30. 12:22
반응형

묵시적 형 변환 (자동 형 변환)

작은 메모리 크기의 데이터 타입을 큰 메모리 크기의 타입으로 변환합니다.

int smallNum = 10;
long bigNum = smallNum;

 

 

명시적 형 변환 (강제 형 변환)

데이터 타입을 변환하는데에 있어 형 변환 키워드를 통해 직접 변환합니다.

int num = 56;
byte value = (byte) num;

단, 이때 캐스팅 할 데이터 타입의 범위를 벗어난 값의 경우엔 형 변환을 실행할 수 없습니다다. byte타입의 범위는 -128~127인데, num의 값이 -128 미만이거나 127초과인 경우엔 명시적으로 형 변환을 실행할 수 없게 됩니다..

 

타입 프로모션

연산식에서 서로 다른 데이터 타입의 피연산자가 있을 경우, 두 피연산자 중 크기가 큰 타입으로 자동 형변환이 일어납니다.

 

byte numA = 22;
int numB = 33;
int result = numA + numB;
// int result = (int)numA + numB;

 

위의 연산에서 numA는 byte, numB는 int타입이죠. 연산의 결과인 result는 두 타입 중 더 큰 int타입으로 자동 형변환됩니다.

 

 

 

 

반응형