ホームページ  >  記事  >  Java  >  Java開発 ==とequals()

Java開発 ==とequals()

无忌哥哥
无忌哥哥オリジナル
2018-07-23 09:48:462054ブラウズ

== 記号は基本的なデータ型を比較す​​るときに値を比較しますが、== 記号は 2 つのオブジェクトを比較するときに 2 つのオブジェクトのアドレス値を比較しますが、ほとんどのクラスはアドレスを書き換えることなくメモリを比較します。 Java では、equals() メソッドがオーバーライドされているため、比較値は

String str1 = "abc";
String str2 = "abc";
System.out.println(str1.equals(str2));
System.out.println(str1 == str2);

この場合、true と true が返され、2 番目の == も true を返す理由:

メモリ内に定数プールが属しているためです。メソッド領域。str1 が作成されたとき、定数プールにないため、オブジェクト "abc" が定数プールに作成されます。str2 が作成されたとき、それはすでに定数プールにあるため、それが直接使用されます。は2回目なのでアドレスは同じです

String str1 = new String("abc");
String str2 = new String("abc");

str1==str2に変更すると、異なるアドレスで2つのオブジェクトが作成されるためfalseが返されます。

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

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