ホームページ >Java >&#&チュートリアル >Java で `==` の代わりに `.equals()` を使用する必要があるのはどのような場合ですか?
「.equals」と「==」の違いを理解する
Java で == の代わりに .equals を使用するという講師の指示参照の等価性と値の等価性の間に重要な違いが生じます。
参照の等価性(==)
== 演算子は、2 つのオブジェクトに関連付けられた参照を比較します。両方のオブジェクトが同じメモリ位置を参照しているかどうかをチェックします。これは、各オブジェクトが一意の参照を持つ非プリミティブ型 (String、Integer など) に適用されます。
例:
Integer o1 = 10; Integer o2 = 10; System.out.println(o1 == o2); // false
o1 と o2 は同じ値を保持しますが、メモリ内の同じオブジェクトではありません。したがって、== は false を返します。
値の等価性 (.equals)
一方、.equals メソッドを使用すると、オブジェクトの値を比較できます。参照に関係なく、2 つのオブジェクトが同じコンテンツを持つかどうかをチェックします。
例:
String x = "hello"; String y = new String("hello"); System.out.println(x.equals(y)); // true
ここで、x と y は異なるオブジェクトですが、同じ内容を持ちます。価値。 .equals は値を比較し、true を返します。
.equals メソッドのオーバーライド:
さらに、.equals はカスタム クラスでオーバーライドでき、独自のロジックを定義できます。値の比較のため。これにより、特定の型の等価動作をカスタマイズできます。
.equals が推奨される理由:
一般に、次の理由により、== よりも .equals の使用が推奨されます。
講師の例では、 2 つの整数オブジェクトを比較するには、.equals を使用することをお勧めします。これにより、オブジェクトが異なるメモリ位置を参照している場合でも、オブジェクトが同じ値を持つことが保証されます。
以上がJava で `==` の代わりに `.equals()` を使用する必要があるのはどのような場合ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。