和田地区建设局网站,可以直接进入网站的正能量,广元企业网站建设,网络营销推广优化文章目录 JVM 内存回收算法有哪些#xff1a;一、分代收集1.分代收集理论2.垃圾收集 二、垃圾收集算法1. 标记-清除算法2. 复制算法3. 标记-整理算法 JVM就是Java虚拟机#xff0c;JVM的内回收对其原理的认识也是很有必要的#xff0c;当底层的系统出现内存溢出或者内存泄漏… 文章目录 JVM 内存回收算法有哪些一、分代收集1.分代收集理论2.垃圾收集 二、垃圾收集算法1. 标记-清除算法2. 复制算法3. 标记-整理算法    JVM就是Java虚拟机JVM的内回收对其原理的认识也是很有必要的当底层的系统出现内存溢出或者内存泄漏对处理系统很有必要的。 JVM 内存回收算法有哪些 
链接 JVM之内存回收算法_jvm内存回收-CSDN博客 
一、分代收集 
1.分代收集理论 
分代收集理论分别是 
弱分代假说绝大多数对象都是朝生夕死强分代假说熬过越多次垃圾收集过程的对象就越难以消亡跨代引用说跨代引用相对于同代引用来说仅占极少数。 其中上述前2个假说共同奠定了常用垃圾收集器的一致设计原则收集器应该将java堆划分不同区域按照对象的年龄分配到不同区域存储针对不同区域使用不同回收算法。     而跨代引用说解决了存活算法效率问题即 可达性分析算法对于少量跨代引用不去跨代扫描整个区域。而是使用全局数据结构remember set来管理这些少量跨代引用的对象。 
2.垃圾收集 由于分代收集理论常用的垃圾回收器都会将java堆分为多个区域新时代和老年代则针对不同区域会有不同的垃圾收集常见如下 
Minor GC 新生代收集目标只是新生代的垃圾收集Major GC 老年代收集目标是老年代的垃圾收集Full GC 收集整个java堆和方法区的垃圾收集Mixed GC 收集整个新生代以及部分老年代的垃圾收集仅G1支持。 
二、垃圾收集算法 
1. 标记-清除算法 
最早出现也是最基础的垃圾收集算法后续所有的垃圾收集算法都是基于它的是用于在老年代的垃圾回收算法常见如CMS垃圾回收器(低延迟)。 算法原理 
标记标记出所有需要回收的对象清除统一回收掉所有标记的对象。 代价对大量可回收对象时执行效率低会产生大量的内存空间碎片。 
2. 复制算法 
主要是为了解决标记清除算法对大量可回收对象执行效率低的问题它适合用于新时代收集算法对象朝生夕死特性。 算法原理 
将可用内存按容量划分为大小相等的2块将还存活对象复制到另一个空间上将之前使用过的内存空间一次清理掉 代价空间浪费将可用的空间缩小为原来一半如果存活对象比较多的或比较大复制效率就比较低。 
3. 标记-整理算法 
主要解决标记清除算法内存碎片化的问题它适合老年代对象回收特性长期存活对象如Parallel Old垃圾收集器吞吐量。 算法原理 
标记标记需要回收对象;整理让存活对象都向内存另一端移动;清理直接清理边界以外的内存. 代价收集花费时间相对于标记清除算法会慢一些。