値ではなく、2 つの異なるオブジェクトを比較しようとしています。z と h は、同じ値を保持する 2 つの異なる Integer オブジェクトを指します。
z == h
2 つのオブジェクトが等しいかどうかを確認します。したがって、false が返されます。
Integer オブジェクトによって格納された値を比較する場合は、equals
メソッドを使用します。
Integer z = new Integer(43); // Object1 is created with value as 43.
z++; // Now object1 holds 44.
Integer h = new Integer(44); // Object2 is created with value as 44.
したがって、最後に、値が 44 の object1 と object2 という 2 つの異なる整数オブジェクトがあります。
z = h
これは、z と h が指すオブジェクトが同じかどうかをチェックします。つまりobject1 == object2
、どちらが間違っていますか。もしあなたがそうするなら
Integer z = new Integer(43); // Object1 is created with value as 43.
z++; // Now object1 holds 44. Z pointing to Object1
Integer h = z; // Now h is pointing to same object as z.
今
z == h
true を返します。
これは役立つかもしれませんhttp://www.programmerinterview.com/index.php/java-questions/java-whats-the-difference-between-equals-and/