文字列を次のように宣言すると
String test=new String("testing");
と
String test1="testing1"
String は Java のクラスであるため、新しい演算子を使用せずに test1 をどのように文字列オブジェクトにするのですか? ? また、文字列がインターンされたとき、2 つの文字列が同じ値を持つ場合、その文字列はどの参照で文字列インターン プールに一度格納されますか?
ご利用の際は
String test1="testing1"
次に、それぞれの個別の文字列値のコピーを 1 つだけ保存していることを意味します
しかし
String test=new String("testing");
新しい文字列オブジェクトを提供します。
あなたの 2 番目の割り当てが次のとおりだったとします。
String1 test1 = System.getenv("PATH");
ここで、test1 はおそらく、new() を使用せずに String オブジェクトへの参照でもあります。既存のオブジェクトへの参照を新しい変数に割り当てることができます。では、どこに問題があるのでしょうか。
問題は、「test1 は文字列オブジェクトです」のようなずさんな表現を使用してはならないことです。そうではない。String オブジェクトまたは null への参照です。それだけです。