ホームページ  >  記事  >  Java  >  Javaのequalsと==の違い

Javaのequalsと==の違い

angryTom
angryTomオリジナル
2019-11-11 15:18:514424ブラウズ

Javaのequalsと==の違い

java

"== の等号と == の違いは、メモリが存在するかどうかで 2 つの参照を比較します。同じオブジェクト (つまり、同じメモリ空間) を指しているかどうか、つまり、メモリ空間内の記憶場所が一貫しているかどうか。

equals は、オブジェクトの内容が等しいかどうかによく使用されます。

equals メソッドは Object クラスによって提供され、サブクラスによって書き換えることができます (推奨チュートリアル: java チュートリアル)

public boolean equals(Object obj) {
    return (this == obj);
}

デフォルトの実装は、オブジェクトがそれ自体と比較される場合にのみ true を返します。これは、現時点では「==」と同等です。

Java の多くのクラス (String クラス、Date クラス、File クラス) は、equals メソッドを書き直しています。ここでは、一般的な String クラスを例として示します。

public class Test {
    public static void main(String[] args) {
        String num1= "abc";
        String num2= "abc";
        System.out.println(num1==num2);//true
 
        String num3 = new String("abc");
        String num4= new String ("abc");
        System.out.println(num3==mnum4);//false
        System.out.println(num3.equals(num4));//true
    }
}

Java 言語の equals メソッドは実際には開発者にオーバーライドされており、開発者は満たす 2 つのオブジェクトが等しい条件を定義できます。

これは、equals メソッドは「==」とまったく同じであることを意味します。ただし、equals メソッドはオーバーライドできます。「==」の場合、値型の場合、値が一致するかどうかを比較します。が等しい; 参照型の場合は、オブジェクトのアドレスが等しいと判断します。

以上がJavaのequalsと==の違いの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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