クラス型変数の比較
まず、ソース
1 public class Test { 2 final int i; 3 4 Test(int i) { 5 this.i = i; 6 } 7 8 public int getI() { 9 return i; 10 } 11 }
と、
1 public class TestTest { 2 public static void main(String[] args) { 3 Test test1 = new Test(100); 4 Test test2 = new Test(100); 5 System.out.println(test1 == test2); 6 } 7 }
で、実行結果。
false
クラス型変数test1、クラス型変数test2のフィールド値int型変数iは、どちらも100で等しい。
でも、==で比べているのは参照先が同一であるのかである。
test1とtest2は個別に生成されたインスタンスであるので、参照先が同じになるわけはないです。
実行結果がfalseなのは当然です。