ホームページ >Java >&#&チュートリアル >Java で `==` の代わりに `.equals()` を使用する必要があるのはどのような場合ですか?

Java で `==` の代わりに `.equals()` を使用する必要があるのはどのような場合ですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-17 06:53:25173ブラウズ

When Should I Use `.equals()` Instead of `==` in Java?

「.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 の使用が推奨されます。

  • オブジェクトに関係なく、値の同等性を保証しますアイデンティティ。
  • オーバーライドによるカスタム比較ロジックが可能です。
  • 両方のオブジェクトが null である可能性がある場合に潜在的な null ポインター例外を防ぐのに役立ちます。

講師の例では、 2 つの整数オブジェクトを比較するには、.equals を使用することをお勧めします。これにより、オブジェクトが異なるメモリ位置を参照している場合でも、オブジェクトが同じ値を持つことが保証されます。

以上がJava で `==` の代わりに `.equals()` を使用する必要があるのはどのような場合ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。