본문 바로가기

카테고리 없음

Java 연산시 Type Casting

Java는 산술 연산시 피 연산자의 타입을 일치 시킨 후 연산을 진행합니다.

아래의 규칙이 적용됩니다.

 

규칙 1.

int 타입보다 작은 범위를 가지는 타입끼리의 연산은 int 형으로 암시적 형 변환후 연산을 수행하며, 당연히 int를 반환합니다.

byte + byte
int = (int)byte + (int)byte

byte + short
int = (byte) + (int)short

byte와 byte를 더하면, 두 byte를 int로 implicite type casting한 후 연산을 수행하고 int를 반환합니다.

따라서 byte 끼리의 연산 결과를 byte에 explicite type casting 없이 할당하면 오류가 발생합니다.

byte b1 = 5;
byte b2 = 10;
byte result = b1 + b2

incompatible types: possible lossy conversion from int to byte

규칙 2. int 이상의 타입과 연산시 피 연산자 중 큰 타입으로 자동으로 형 변환한 후 연산을 수행하며, 큰 타입을 반환합니다.

char + int:
int = (int)char + int

byte + long:
long = (long)byte + long

long + float:
float = (float)long + float