最適化1
値の代入の右側が範囲を超えていない場合は、バイト/ショート/炭3種類については、その後、javacコンパイラは、自動的に私たちのために何かを暗黙的に(バイト)(ショート)(文字)を追加します。
- 範囲を残していない場合は、強力なターンコンパイラを作ります。
- 範囲の左側より右側ならば、コンパイラエラーを指示。
コード例
コードの実行後の結果
最適化2
変数への代入すると、それらのすべての右側の式が一定であれば、何の変数、コンパイラjavacは結果を計算し、いくつかの定数の発現を指示しません。例えば:右;:;短い結果が= 13ショート結果= 5 + 8 //右側の等号の後には、すべての定数、コンパイラ、[]に直接等価で得られたの.classバイトコード・ファイルを計算に関与しない変数であります数値定数の結果は、そう正しく、左の範囲を超えていません。これは、「一定の最適化コンパイラ」と呼ばれています。しかしノート:あなたがそれらの発現に関与する変数を持っていたら、これを最適化することができません。
コード例
パッケージdemo03_Optimize; パブリック クラスDemo02Optimize { 公共 静的 ボイドメイン(文字列[]引数){ ショート NUM1 = 10; // 正しい言葉遣い、右、左の範囲、超えていない ショート A = 5。 、 ショート B = 8 ; // ショートショート+ - > + int型はint - > int型 // ショート結果= A + B; // エラーの書き込み!int型であるように、左のニーズ // 右の変数、代わりに定数を使用して、そして唯一の2つの定数、誰もいない ショート結果+ = 5 8。; System.out.printlnは(結果); // 短い結果2 5 + A =。 + 8; // 18 } }
コードの実行後の結果