java - HashMap算不算GCRoot?
巴扎黑
巴扎黑 2017-04-18 10:19:45
0
1
467

在看MAT得时候,看到关于GCRoot的定义中有一条:

  • 系统类或者说是由系统类加载器加载的类。

HashMap位于java.util包下,由BootstrapClassLoader加载,那么它是不是GCRoot呢?

如果是的话,我还有一个疑问,想请教:如果HashMap是GCRoot,那么它内部存储的对象肯定包含在GCRoot引用链的了,那么每次在垃圾回收器回收的时候HashMap中的对象都无法被回收掉,那这样岂不是造成内存泄露了?

巴扎黑
巴扎黑

全部回覆(1)
PHPzhong

GC Roots包括:

  1. 虛擬機器棧中的變數。

  2. 方法區的常數。

  3. 方法區中的靜態變數。

同時,需要明確Java記憶體大致分為:虛擬機棧,Native方法棧,Java堆,本地程式計數器和方法區。一個HashMap引用可以當GC Root,但HashMap的實體就不是GC Root了。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!