JAvaコンパイラのスマートさ

752 ワード

コードは次のとおりです.
 
public class TestStatic
{
    
    public static void main(String[] args)
    {
        TestStatic1 test = null;
        System.out.println(test.ss);
    }
}

class TestStatic1
{
    static String ss = "1223";
    
    Set set=new HashSet();
}

 想像した結果:正異常を報告する.
 実際の結果:1223が印刷する.
 
   逆コンパイル後の結果:
import java.io.PrintStream;

public class TestStatic
{
  public static void main(String[] args)
  {
    TestStatic1 test = null;
    System.out.println(TestStatic1.ss);
  }
}
 
  コンパイラはこのような不合理な方法を自動的に最適化した.