Java(JDK 1.7)でこれに出くわしました:
Integer a = 100;
Integer b = 100;
Integer c = 1000;
Integer d = 1000;
System.out.println(a == b); //true
System.out.println(c == d); //false
System.out.println(new Integer(100) == new Integer(100)); //false
System.out.println(new Integer(1000) == new Integer(1000)); //false
出力は次のとおりです。 true false false false
a==b が true と評価されるのはなぜですか? これの理由は何ですか?これは文字列の内部化に似ていますか?