ホームページ >Java >&#&チュートリアル >Java の .equals() と ==: それぞれをいつ使用する必要がありますか?

Java の .equals() と ==: それぞれをいつ使用する必要がありますか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-28 01:34:09477ブラウズ

.equals() vs. == in Java: When Should You Use Each?

.equals と ==: より深いダイブ

Java では、「.equals」と「==」の区別は次のとおりです。よく誤解されます。これらの演算子の違いを調べて、それぞれをいつ使用するべきかを理解しましょう。

「=="

」== の使用は等価演算子であり、比較します。 2 つのオブジェクトの参照。プリミティブ データ型 (int、double など) の場合、「==」は値が等しいかどうかをチェックします。ただし、非プリミティブ型 (オブジェクトなど) の場合、「==」は両方のオブジェクトが同じメモリ位置を指しているかどうかを比較します。

".equals" を使用する

「.equals」は「Object」クラスで定義されたメソッドで、2 つのオブジェクトの内容を比較する一般的な方法を提供します。デフォルトでは、「.equals」はオブジェクトの値を比較し、サブクラスでのカスタム実装を可能にします。

「.equals」が優れている理由

while "== " はプリミティブ データ型には十分ですが、オブジェクトを扱うときに誤解を招く可能性があります。例:

コード:

Integer a = new Integer(10);
Integer b = new Integer(10);

if (a == b) {
  System.out.println("They are the same");
}

if (a.equals(b)) {
  System.out.println("They are equal");
}

出力:

They are not the same
They are equal

この例では、「==」 「a」と「b」はメモリ位置が異なる別のオブジェクトであるため、「false」が返されます。ただし、「.equals」は同じ値を表すため「true」を返します。

ベスト プラクティス

一般的なルールとして、常に「.equals」を使用することをお勧めします。 " オブジェクトの場合、プリミティブ データ型であっても。これにより、一貫した動作が保証され、潜在的なバグが回避されます。以下にいくつかのガイドラインを示します:

  • プリミティブ データ型の場合: 値が等しいかどうかを確認するには、「==」を使用します。
  • オブジェクトの場合: 内容を比較するには、「.equals」を使用します。
  • の場合strings: 文字列はインターンされ、複数の参照を持つことができるため、「==」の代わりに「.equals」を使用します。

以上がJava の .equals() と ==: それぞれをいつ使用する必要がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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