00:00
好,各位同学,我们继续那上一讲,我们给大家介绍了软引用那它的。概念就是一句话知识点,那么就是说内存够用不回收,内存不够用了要回收,那么好软引用刚刚给大家。讲解完成,那么接下来我们来看一下若引用,那弱引用是什么呢?一句话。不管内存是否够用,只要是若引用GC垃圾回收了,一律回收,不管够不够用。好,那么在这我们呢,不妨简单的做一个小总结,一句话。前一样,死了都不少。就算你报OM。第二个,软饮药。为了降低oom发生的概率。那么内存够。我不跟你计较,内存不够,我要回收。第三一个若引用,就是不管内存是否够,只要有是弱引用,只要有GC一律回收好,那么我们呢,来看一下他们的架构。
01:09
这个分支引用。也就是我们常说的引用,其实也就是强引用说过了。软饮用讲过了,够就收不够。啊告不会回收不够,我们要回收。若饮用,那么这个就是不管是否内存是否充足足够一律回收,那么所以说我们呢,看完。就用weak reference。这个类呢来实现,相对而言,只要垃圾回收机制运行,不管GVM的内存够不够,它都会回收该对象所占用的内存。好,那么同学们。老化。来吧,代码说话。OE等于六。那么这个时候work reference。Object类。那么这个时候呢,干嘛呢。
02:00
然后呢?这个时候我们把O1丢进来。那么老规矩这个呢,我们呢,往下翻这个呢。坦白讲。Get。那么这个时候有两个对象应该打出地址值吧,好。跟以前的一样。这个时候,Object只为难了。GC。垃圾回收了,那么呢,打一条小短线吧,短线以下是回收之前,短线以下是回收之后,那么这个时候呢,同学们。我们呢?看一眼,跟刚才一样。不用讲,O1被置为难以后再加上GCOE肯定是烂,关键就是看这个若引用它还有没有,那么这个时候同学们我们来看一下我们的编辑和配置。弱引用大家看我这什么都没配,我不像是软引用呢,故意给它配成了是吗?五兆,也就是说默认的话,我这个内存是绝对充足的,那么我们来看看,在内内存充足的前提下,如果手动GC,也就是说发生了垃圾回收,那么我们的弱引用。
03:12
GC之前肯定会有,毕竟在这有了吗?那么GC之后还会不会有呢?来我们同学们运行一下,我们可以充分的看到我们的效果干嘛,这两个就是这个,这个好说,下面O124行,这个就是这个,因为它被质质为难了嘛,所以说是难。但是我们动了OE,我们可没动。Wake reference这个,但是呢,由于它是弱引用,只要有GC,凡是弱引用通通给我吐出来,那么它呢,也就变成了一个难,好,那么这个呢,就是我们的什么弱引用。那么同学们不妨。咱们呢,杀一个回马枪,再跟我们前面的是吗?软引用再做一次对比,那么软引用我们说过了,内存够用的时候就保留,不够用它才会回收,那么现在假设啊,我们来执行一下,这个内存足够,那么坦白讲,我现在配的参数是五兆,五兆就捏这么一句话,它也是够的,相当于说还是内存够用,它不像刚才我呢,估计干了个30兆,那么这不就把撑爆了,那么现在我们来看哈。
04:22
如果现在我们是弱引用,我们GC手动GC之后,在内存充足的前提下,弱引用也是,那那么我们复习回到我们的上一讲soft软引用。那么在。内存充足的前提下,那么看看软饮用会不会被回收,那么好,同学们没方法入口,我们现在执行的是什么?内存enough足够,那么这个时候同学们lower,我们呢,一回车运行。请看鲜明的对比,如果是索的话,那么GC之前两个都有好说GC之号。O1被值为难了,这是那但是现在内存够用soft干嘛?它并没有被回收,和我们刚才的这个是吗?两个呢?这是两种不同的意思,那么这一块请同学们一定要区分清楚,我们现在的若引用,那就是内存。
05:17
不管够不够用,只要有g c reference weak reference,一律被回收好,那么这个呢,就是我们的弱引用。
我来说两句