文字列リテラルと文字列オブジェクトについてよく読んでいます。 StringリテラルはStringプールに格納され、Stringオブジェクトはヒープ内にオブジェクトを作成することを読んでいます。私は、 ""を使って初期化されたクラスのインスタンス変数にはかなり混乱しています。文字列リテラルと文字列オブジェクト
class A {
private String aStr = "ASTRING";
}
はaStr
文字列プールに追加されるのでしょうか、ヒープ内のオブジェクトを作成するのでしょうか?
これはプールに入り、 'string str = new String(" ASTRING ");'はプールに入れてヒープに行き、 'str.intern()'もプールに入ります。 aStr'の価値と**ヒント**あなたもこれをGoogleにすることができます。単純なgoogle reslutはこの結果(http://www.java67.com/2014/08/difference-between-string-literal-and-new-String-object-Java.html) – emotionlessbananas
です。ガベージコレクション。 "ASTRING"はまだプールに残りますか? – Develofer
@Develoferガベージコレクションはヒープに対してのみ発生します – Gaur93