java9 サンプル コード: (推奨される学習: java コース )
String str1 = "abc"; String str2 = "abc"; String str3 = new String("abc"); String str4 = new String("abc");
当: str1 == str2 输出:true 当:str1.equals(str2); 输出:true 当: str1 == str3 输出:false 当:str1.equals(str3); 输出:true 当: str3 == str4 输出:false 当:str3.equals(str4); 输出:true
関連する詳細:
- String で intern メソッドを使用できます。文字列オブジェクトには、定数プール内にそれと等しい文字列への参照があります。
str3.intern() == str4.intern() 输出:true str1.intern().equals(str2.intern()) 输出:true str1.intern() == str1 输出:false - String str = new String("abc");创建了几个对象?
まず、存在するかどうかを確認します。定数プール内の "abc" です。この文字列が存在する場合 (String str = "abc"; 表示される場合)、1 つ作成され、存在しない場合は 2 つ作成されます (定数プールに 1 つ、ヒープに 1 つ)。
equals と ==
For == の違い:
基本データの変数に作用しますタイプを指定し、保存されている「値」が等しいかどうかを直接比較します。
参照型変数に作用し、比較はポイントされるオブジェクトのアドレスになります。
equals の場合:
equals メソッドは基本データ型の変数には適用できません。
Object の等しいメソッド 書き換えられた場合は、参照型変数が指すオブジェクトのアドレスが比較され、それ以外の場合は内容が比較されます。
以上がjava と == の違いの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。