2017-07-23 63 views
-4
String a="ABC"; 
a="BCD"; 
System.out.println(a); //BCD 

「ABC」會發生什麼?有人可以解釋我會發生什麼?解除引用的字符串文字會發生什麼?

+1

它會打印'BCD' – bigbounty

+4

請在提問前瞭解Java **的基本知識**。 – sudo

+3

簡單地說,它的值將會改變並且將是BCD,因爲您將該值賦予它。它會打印BCD –

回答

0

「ABC」獲取垃圾回收,因爲它已經失去了參考

2

當您執行String a="ABC",你的字符串字面量獲取的自動添加到字符串池。它保存在字符串池中,以便JVM可以重用它。

之後,垃圾收集字符串的規則與任何其他對象的規則相同。在我們將任何其他對象分配給a變量之前,如果"ABC"被任何其他變量引用,則它將停留在該池中。否則,如果它不再被引用,那麼它將在下一次GC運行時收集垃圾。

相關問題