ホームページ  >  記事  >  Java  >  Javaの「==」演算子とequalsメソッドの違いは何ですか?

Javaの「==」演算子とequalsメソッドの違いは何ですか?

王林
王林転載
2020-07-04 16:37:302654ブラウズ

Javaの「==」演算子とequalsメソッドの違いは何ですか?

違いは次のとおりです:

(推奨学習: Java 入門プログラム )

==演算子は特別に使用されます2 つの変数の値が同じかどうかを比較する、つまり、変数に対応するメモリに格納されている値が同じであるかどうかを比較するために使用されます。2 つの基本タイプのデータ、または 2 つの参照変数を比較するために使用されます。が等しい場合は、== 演算子のみを使用できます。

equals メソッドは、2 つの本が同じかどうかを比較するのと同じように、2 つの独立したオブジェクトの内容が同じかどうかを比較するために使用されます。比較する 2 つのオブジェクトは独立しています。

例:

String a = new String("AA");
String b = new String("AA");
System.out.println(a==b);
System.out.println(a.equals(b));

2 つの新しいステートメントは 2 つのオブジェクトを作成し、次に 2 つの変数 a と b を使用してそれぞれオブジェクトの 1 つを指します。これらは 2 つの異なるオブジェクトです。は異なります。つまり、a と b に格納されている値が異なるため、式 a==b は false を返します。2 つのオブジェクトの内容は同じであるため、a,equals(b) は true を返します。

(ビデオ チュートリアルの推奨: java ビデオ チュートリアル )

注: 文字列比較では、基本的に、equals メソッドが使用されます。

クラスに独自に定義されたequalsメソッドがない場合、そのクラスはObjectクラスのequalsメソッドを継承します。Objectクラスの実装コードは次のとおりです:

boolean equals(Object o)
{
return this==o;
}

これは、クラスがそうでない場合を意味します。 自己定義のequalsメソッド、デフォルトのequalsメソッドは、==演算子を使用すること、つまり、2つの変数が指すオブジェクトを同じオブジェクトと比較することと同等です。このとき、イコールと == を使用してください。

も同じ結果が得られます。 ! 2 つのインスタンス オブジェクトの内容が同じかどうかを比較できるクラスを作成したい場合は、equals メソッドをオーバーライドする必要があります。

以上がJavaの「==」演算子とequalsメソッドの違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はcsdn.netで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。