わかりました、この質問はこの質問の延長です
Java Strings: "String s = new String("silly");"
上記の質問はこれと同じ質問をしましたが、私は新たな疑問点があります。
Effective Java
および上記の質問の回答によると、不要なオブジェクトが作成されるため、行うべきではありません。String s = new String("a new string");
Javaは自動文字列インターニングを行っていると思うので、この結論についてはよくわかりません。つまり、文字列の場合、メモリにはそのコピーが1つしかありません。
それでは見てみましょうString s = new String("a new string");
。
"a new string"
は既にメモリ内に作成された文字列です。
私がするときString s = new String("a new string");
、それs
も"a new string"
です。によるとautomatic string interning
、s
は の同じメモリ アドレスを指す必要があります"a new string"
ね。
では、不要なオブジェクトを作成しているとどのように言えますか?