質問: t3) { //同じ値なのにfalseになる System.out.println("t2とt3は等しい"); } ```
回答: t1とt3、t1とt2の比較はint(プリミティブ型)とInteger(インスタンス)の比較であり、 t2とt3の比較はInteger(インスタンス)同士の比較になっているためです。 通常はint(プリミティブ型)とInteger(インスタンス)同士を比較することができませんが、 オートボクシング/オートアンボクシングという自動変換の仕組みにより可能にしています。 javaはインスタンス同士の比較に「==」を使うと意図した結果になりません。インスタンスのアドレスを参照している参照値が入っているからです。 なので、インスタンス同士の比較にはequalsメソッドを使います。