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