Java開発 ==とequals()

无忌哥哥
リリース: 2018-07-23 09:48:46
オリジナル
2084 人が閲覧しました

== 記号は基本的なデータ型を比較す​​るときに値を比較しますが、== 記号は 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 サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート