1
只想知道我是否有單態對象,它具有非靜態映射。爲什麼地圖中的對象會佔用空間而不是堆。我從Visual VM中可以看出,Map pergem空間中的對象間歇會增加。每顆寶石內存單一模式
我所知道的只是靜態變量,而類在pergem空間中休息,所有的對象都應該去堆。
這是因爲singleton模式,其中singleton對象是靜態的,因此引用指向堆但仍保留pergem的大小?
如果是這種情況,這個問題的補救措施是什麼。
單體內的任何字段實際上都是靜態的。單身人士只是混淆。 PermGen(在它存在的實現上)將充滿分配給它的對象 - 類數據和字符串。如果您正在重新加載類裝載器,則有可能您的靜態代碼阻止舊代碼被卸載。大多數GC活動都會忽略PermGen,因此您可能會發現其中的物體徘徊的時間比預期的要長。 –
我會說使用單身人士是根本問題。如何切換到DI並使用[@Singleton](http://google-guice.googlecode.com/git/javadoc/com/google/inject/Singleton.html)? – maaartinus