問題:
字串文字通常被認為是被保留的,因此不易受到垃圾收集。然而,在探索字串連線、String 類別快取和類別卸載的細微差別時,會出現混亂。為了澄清這一點,讓我們深入研究以下問題:
答案:
1.編譯時文字的垃圾收集:
編譯時定義的字元串文字,只要載入包含這些文字的程式碼的類別載入器就存在。只要使用文字的類別保持載入狀態,表示它們的 String 物件就不會被垃圾收集。但是,如果類別載入器被破壞,文字可能會受到垃圾收集。
2. intern 方法與垃圾收集:
對字串呼叫 intern 方法會傳回表示字串文字的相同物件。因此,駐留字串與文字本身有相同的生命週期。但是,使用 new 創建的與字串文字不同的字串如果變得無法訪問,則可能會被垃圾回收。
3.類別卸載與字串文字:
聲稱文字只有在卸載 String 類別時才被垃圾回收是不正確的。 Java 不會卸載其核心類,包括 String 類別。只要引用字串的程式碼保持活動狀態,字串文字就會被保留。
以上是字串文字會被垃圾收集嗎?探索字串駐留和類別卸載的細微差別。的詳細內容。更多資訊請關注PHP中文網其他相關文章!