一件事,我一直在想,如果我有這樣的方法:在java中的字符串和內存分配?
String replaceStuff (String plainText) {
return plainText.replaceAll("&", "&");
}
將它創建新的String對象都爲得到由GC破壞了「&」和「&」和時間然後再次通過下一個電話重新創建? 例如 將它在理論上是更好的做這樣的事情
final String A ="&";
final String AMP ="&";
String replaceStuff (String plainText) {
return plainText.replaceAll(A, AMP);
}
我想這大概是比現實生活中的問題更多的理論問題,我只是好奇,內存管理是如何在這方面的處理。
它保證'Object y =「hello」',但是''he「+」llo「的編譯器優化是否也有保證? (我問,沒有挑戰性:-)) –
這是一個很好的例子! – Vlad
@肖恩:它也有保證。它在JLS中的§3.10.5的[本部分](http://java.sun.com/docs/books/jls/third_edition/html/lexical.html#19369)中:「字符串文字 - 或者更一般地,作爲常量表達式的值的字符串(§15.28) - 被「interned」[...]「 –