[英]Java String best practice regarding pool
我一直想知道最有效的方法是用Java創建String的方法。 我的意思是說字符串不會改變值。
例:
String prefix = "Hi, I am ";
prefix
不會更改,但后綴可能會更改。
我不想使prefix
成為static final
變量,因為即使很少使用該類,它也將始終在JVM中保持活動。
當我執行以下操作時:
String fullWord = ("Hi, I am "+_postFix);
我猜想"Hi, I am"
字符串值將保留在Java字符串池中,而我沒有將前綴聲明為變量的“開銷”。
意思是我的問題可以歸結為:
當我不使用new
關鍵字聲明String變量時,是否總是使用Java String池?
使用字符串之前將其聲明為變量是否更好?
字符串池如何工作? JVM是否檢測到經常使用相同的String值,並一直在JVM內存中引用該String?
String
都被保留。 String
都將被內部化, String.intern
返回的String
也會被String.intern
(在典型的實現中,這樣做很慢)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.