はのは、次のように私はクラスがあるとしましょう:次のコードは、真なりJavaの - 自動のStringコンストラクタ内インターン
class Apple {
String apple;
Apple(String apple) {
this.apple = apple;
}
}
何?
public boolean result() {
Apple a = new Apple("apple");
Apple b = new Apple("apple");
return a.apple == b.apple;
}
Javaは自動的にオブジェクトのインスタンス内で設定された文字列を使用しますか?
new String("...")
を使用してJavaを作成したのは、Javaが文字列を使用できない唯一の時間ですか?
EDIT:回答を
おかげで、この質問への拡張は、同じテストで
Apple a = new Apple(new String("apple"));
Apple b = new Apple(new String("apple"));
戻り偽を言うことであろう。
これは、文字列リテラルではなく、Stringのインスタンスをコンストラクターに渡すためです。
ああ、わかりました。そして、たとえ私がAppleを使っていても新しいApple(新しいString( "apple")); Apple b =新しいApple(新しいString( "apple"));結果は依然として偽である。 –
@wild_nothingはい、p'は私の更新を確認してください、私はそれが明確になることを望みますが、あなたがさらに明確化が必要かどうか尋ねることを躊躇しないでください –