下面是MSDN:CLR/JVM是否爲所有正在運行的.net/java應用程序保留一個實習生池?
提取物的公共語言運行時通過維護表格節省 字符串存儲, 稱爲實習生池,它包含 單個參考聲明或創建 每個唯一 文字串以編程方式在您的程序中。 因此,在系統中僅存在一次具有特定值 字符串的實例,該實例只存在一次 。
例如,如果您分配相同 文字串幾個變量, 運行時檢索來自 實習生池相同 參考文本字符串,並將其分配給每個 變量。
實習生方法使用實習生池 來搜索等於str的 值的字符串。如果存在這樣的字符串, 其在實習池中的引用是 返回的。如果字符串不存在 ,則將對str的引用添加到 intern池中,然後返回該引用 。 ....如果您正在嘗試 減少您的應用程序分配的內存總量,請記住 ,表示實習字符串有兩個不需要的副作用 。首先,分配給實習字符串 對象 內存不容易被釋放 直至公共語言運行庫 (CLR)終止。
那麼,這是否意味着CLR爲所有正在運行的.net應用程序保留一個單一的實習生池? 例如:如果一個程序的創建一個字符串「測試」並在其他程序試圖創建另一個字符串字面量「測試」,使用相同的副本?同樣的問題也適用於JVM。
你有鏈接嗎? –