一つのこと、私はこのような方法がある場合:javaでの文字列とメモリの割り当ては?私はいつも疑問に思って
String replaceStuff (String plainText) {
return plainText.replaceAll("&", "&");
}
を、それは新しい文字列を作成するには、GCによって破壊されます「&」と「&」のためにすべての時間をオブジェクトと次の呼び出しで再び作成されましたか? など。 は、それは理論的には私は、これはおそらく、実際の生活の問題よりも理論的な質問だと思います。この
final String A ="&";
final String AMP ="&";
String replaceStuff (String plainText) {
return plainText.replaceAll(A, AMP);
}
のような何かをする方が良いだろう、私はメモリ管理が、この局面ではどのように扱われるかだけ興味があります。
'Object y =" hello "'は保証されていますが、 "he" + "llo" 'のコンパイラ最適化も保証されていますか? (私は、挑戦しないで、質問しています:-)) –
それは素晴らしい例です! – Vlad
@Sean:それも保証されています。 JLSの§3.10.5の[この部分](http://java.sun.com/docs/books/jls/third_edition/html/lexical.html#19369)の「文字列リテラル」、またはより一般的には定数式(15.28)の値である文字列は "interned" [...] " –