今天给各位分享火影忍者漫画629的知识,其中也会对码仔漫画:“你是什么垃圾?”(下)进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
码个蛋(codeegg)第713次推文
作者:iMononoke
博客:https://juejin.im/user/5c629a3051882562191755d8
前几天发了上篇:《码仔漫画:来自JVM的灵魂拷问:“你是什么垃圾?”(上)》四种引用类型
对于GC来说,对象是否被应该回收的取决于该对象是否被引用。为了控制对象的生存周期,提供了四种引用方式,引用的强度从强到弱分别为:
强引用->软引用->弱引用->虚引用。
引用的作用:
方便Jvm进行垃圾回收
方便开发人员使用
几种类型的继承关系:
再比较下
怎么回收?
1.标记清除法这是GC算法的思想基础。将垃圾分为两个阶段:
标记阶段。
通过根节点,标记所有从根节点开始的可达对象,未标记过的对象就是未被引用的垃圾对象。
清除阶段。
清除所有未被标记的对象。
2.复制算法为了解决效率问题而出现的。
将原有的内存空间分为两块,每次只使用其中一块。
在垃圾回收时,将正在使用的内存中存活对象复制到未使用的内存块,然后清除使用的内存块中所有的对象。
3.标记整理算法过程与标记-清除算法一样,不过不是直接对可回收对象进行清理,而是让所有存活对象都向一端移动,然后直接清理掉边界以外的内存。
最后一种,是上面三种的综合了~
4.分代收集算法现代商用虚拟机基本都采用分代收集算法来进行垃圾回收。其实是上面几种算法的结合。
垃圾回收主要是在Young(年轻代)和Old(老年代)工作。
堆内存空间主要是这样分配的:
分代回收的过程是这样滴:
最后还有堆内存分配与相关参数
今日问题:
再有问“是什么垃圾”,知道怎么做了嘛?
火影忍者漫画629和码仔漫画:“你是什么垃圾?”(下)的问题分享结束啦,以上的文章解决了您的问题吗?欢迎您下次再来哦!