簡體   English   中英

有關池的Java String最佳實踐

[英]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字符串池中,而我沒有將前綴聲明為變量的“開銷”。

意思是我的問題可以歸結為:

  1. 當我不使用new關鍵字聲明String變量時,是否總是使用Java String池?

  2. 使用字符串之前將其聲明為變量是否更好?

  3. 字符串池如何工作? JVM是否檢測到經常使用相同的String值,並一直在JVM內存中引用該String?

  1. 所有原義的String都被保留。
  2. 編寫易於理解的代碼。 真正不值得嘗試對其進行納米優化。
  3. 類加載器加載的所有原義String都將被內部化, String.intern返回的String也會被String.intern (在典型的實現中,這樣做很慢)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM