我知道字符串字面量和新String對象之間的差異,並且也知道它是如何在內部工作的。但是我的問題是這一點的進步。當我們使用new關鍵字創建String對象爲Java-使用新關鍵字創建字符串對象
String str = new String("test");
在這種情況下,我們傳遞一個String類型的參數。 我的問題是這個字符串生成的地方 - 堆或字符串常量池還是別的什麼地方?
就我所知,這個參數是一個字符串文字,所以它應該在String常量池中。如果是這樣,那麼intern
方法的用法 - 只是將變量str
鏈接到常量池?因爲"test"
已經可用。
請澄清我,如果我誤解了這個概念。
什麼實習方法做 - 只是鏈接? – 2015-02-10 09:04:20
@AnkitSharma - 如果字符串尚未添加到字符串常量池中,調用* intern()*會將該字符串添加到字符串常量池中。 – TheLostMind 2015-02-10 09:05:31
但是在這種情況下''str str = new String(「test」)''test'每次都可以在常量池中使用。 – 2015-02-10 09:18:38