摘要: 下面来分析一下与Reference有关的sun.misc.Cleaner和java.lang.ref.Finalizer。 先来看Finalizer,Finalizer扩展了Reference,故其本质也是一个Reference,与SoftReference、WeakReference、Phanto 阅读全文
posted @ 2017-07-29 17:34 holoyong 阅读(277) 评论(0) 推荐(0) 编辑
摘要: 上一篇简单介绍了三种Reference的使用情况,这一篇就进入源码看一下,这里以WeakReference为例。 首先来看Reference的四种状态: active即活跃状态,表明该Reference的referent未被gc,其主要特点就是next==null; pending即待处理状态,这里 阅读全文
posted @ 2017-07-29 17:27 holoyong 阅读(184) 评论(0) 推荐(0) 编辑
摘要: 下面对SoftReference、WeakReference、PhantomReference三个Reference做相同的测试。 可以看到三个Reference表现各不相同, SoftReference在gc前持有referent,在gc后也没有改变,因为SoftReference中的refere 阅读全文
posted @ 2017-07-29 17:19 holoyong 阅读(170) 评论(0) 推荐(0) 编辑
摘要: gc简述 gc分为minor gc和full gc,区别在于前者指回收新生代(1个Eden和2个Survivor),后者通常会先进行一次minor gc然后再full gc,full gc回收老年代(Tenure),顺带回收永久代(Perm,jdk8中被Metadata取代,Metadata位于na 阅读全文
posted @ 2017-07-29 16:12 holoyong 阅读(237) 评论(0) 推荐(0) 编辑