public class CastEx {
public static void main(String[] args){
//====프로모션 (자동 형변환) ====//
//더 큰 자료형으로 승격이 일어나는 형태,
//정보의 손실이 전혀 없으며 자동적으로 발생
byte b1 = 127;
byte b2 = 127;
int b3 = b1 + b2; //32bit 미만의 자료형(byte)연산시
//32bit(int)로 승격
short s1 = 123;
short s2 = 123;
int s3 = s1 + s2; //32bit 미만의 자료형(byte)연산시
//32bit(int)로 승격
int in1 = 234;
long lg = in1; // int->long 자동 형변환
int in2 = 1234;
long lg2 = 234L;
long lg3 = in2 + lg2;
//int -> long 자동형변환
//==== 디모션(명시적(강제) 형변환) ====//
//더 작은 자료형으로 강등, 데이터의 손실이 있을 수 있음
//명시적(강제) 형변환
byte b4 = 127;
byte b5 = 127;
byte b6 = (byte)(b4 + b5);//int -> byte
//명시적 (강제) 형변환
System.out.println("b6 =" + b6); //데이터 손실이 일어남
short s4 = 123;
short s5 = 123;
short s6 = (short)(s4 + s5);//int -> short
//명시적 (강제)형변환
int in5 = 234;
float f5 = 123.5f;
int in6 = in5 + (int)f5;
//float -> int
System.out.println("in =" + in6);
//소수점이 날라감 반올림 반내림 없음
}
}