00:00
那么同学们老规矩,那现在我们写一些什么呢?首先还是跟上一讲的这个一样,我呢直接呢就懒得写了,把它呢拿过来。欧了,这个呢,是我们一个什么weak reference,但是注意。这一块稍微有点不一样了,我们需要呢,用是吗?这样引用的另外的构造方法,那么哪一个呢?请看这个类里面有几个构造方法,一个就是我们以前用过的,只传一个对象。第二个就是我们现在要传,不但要传一个对象,还要传一个什么东东,你看reference queen是不是叫引用队列呀,那么好,我们呢。往上拉,这呢引用队列等于new reference,那么好这个东东,那么呢,我们也直接是object最简单那么好了,这块言下之线,根据刚才我们查看API,我们现在呢就是这样一个。
01:02
模式。有一个对象。有一个引用队列,然后呢,有一个弱引用,那么好。怎么玩呢?那么现在同学们看一下。欧耶。好。那么再来看一下现在我们的什么东东呢?若引用里面。那么大家看一下我们的引用队列里面,那么请问前面杨哥讲过这个队列怎么消费队列,我们前面讲GUUC的时候是不是讲过?消费和生产,那么这个时候是不是要消费的话,是不是要有这么这么一个东东,那么好同学们这一步第一能跟上吧,三个对象还就是说穿了就跟刚才的套路一样,那是不是在GC之前,那么来同学们请看。我们GC之前O1。有了没有。若引用因为装了OE有没有,但是这个时候请大家看我们的什么东东引用队列里面有没有现在是跟那这一步能跟上现代是GC之前。
02:11
好,我们现在要证明一个什么事呢,就是说对于。Wake,弱引用,你在GC的时候干嘛?你这个对象会被装到引用队列,那么来吧。那为了让大家好看分隔符打看,那么这个时候请大家看啊,OE等于烂了,那么system.gc那么为了保证效果,我们呢,这个GC线程启动以后,我暂停0.5秒。那么OK,有异常我们往外抛,那么这个时候,那么什么意思呢?言下之意,现在O1是不是烂了?O1肯定没了,那么这个时候又产生了GC,根据我们上一讲,我们说过这个若引用,只要有GC,是不是通通被回杀,那么我们再来看看现在我们的效果对于它将会是什么样。
03:05
来,同学们lower,此时我们来看一眼哈,我们的效果又会是什么样呢?我们直接一回车。好,同学们请看,请看重点。这个是G短线以上是GC前上面的。O1有,若引用有引用队列没有,但是现在O1我主动将它变成那。CGC手动打开GC,然后停了0.5秒,保证GC这个完成了,那么看效果OE,因为是那所以说这打出那,那么若引用weak reference,只要有GC,若引用都会没有,但是注意。第三个。GC之前是,那G之后呢?请大家看这一块是不是有个什么Java,那weak reference有这么一个东东,言下之意说明什么?对于我们的。若饮用。
04:02
Soft,包括那个软引用,还有包括现在phom虚引用,他们呢都有一种机制啊,就是在GC回收的时候,第一个它自己肯定就没了。但是他在GC之前会被放到一个东西叫引用队列里面,那么呢,我们用这个case啊来给大家进行了一下讲解和证明,那么有它了以后,我们才能更好的去学习我们的虚引用,那么言下之意。就是引用队列的这句话和API干嘛我要被回收的时候,需要被放到引用队列里面保存一下。
我来说两句