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);
    //소수점이 날라감 반올림 반내림 없음
    }
}

'Java > Variable(변수)' 카테고리의 다른 글

자동형변환  (0) 2012.04.06
변수와 상수  (0) 2012.04.06
자바의 자료형  (0) 2012.04.06

+ Recent posts