Javaコンパイラの定数最適化

1189 ワード

/*
           ,               ,      ,
     javac                   。
short result = 5 + 8; //          ,          
    ,   .class          【    】:
short result = 13;
         ,        ,    。

   “        ”。

    :            ,            。
*/
public class Demo13Notice {
	public static void main(String[] args) {
		short num1 = 10; //     ,           ,
		
		short a = 5;
		short b = 8;
		// short + short --> int + int --> int
		// short result = a + b; //     !     int  
		
		//       ,      ,        ,    
		short result = 5 + 8;
		System.out.println(result);
		
		short result2 = 5 + a + 8; // 18
	}
}
/*
  byte/short/char      ,               ,
  javac                 (byte)(short)(char)。

1.            ,       。
2.            ,         。
*/
public class Demo12Notice {
	public static void main(String[] args) {
		//        int  ,           ,     。
		// int --> byte,        
		byte num1 = /*(byte)*/ 30; //            
		System.out.println(num1); // 30
		
		// byte num2 = 128; //           
		
		// int --> char,      
		//               (char)
		char zifu = /*(char)*/ 65;
		System.out.println(zifu); // A
	}
}