【ジャワ】最適化コンパイラ定数

定数の最適化

変数への代入すると、それらのすべての右側の式が一定であれば、何の変数、
コンパイラjavacは結果を計算し、いくつかの定数の発現を指示しません。
短い結果= + 8 5; //等号の右側はすべて定数、計算に関与しない変数で
コンパイル後、[]に直接等価で得られたの.classバイトコードファイル:
ショート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   //错误写法,中间有变量,无法进行常量优化
      short result2 = (short) (5 + a + 8);   //正确写法,int强制转换为short
      System.out.println(result2);
   }
}
公開された218元の記事 ウォンの賞賛6 ビュー20000 +

おすすめ

転載: blog.csdn.net/u011035397/article/details/104941414