垃圾回收算法介绍

垃圾回收算法

本文简单介绍 标记--清除算法(Mark-Sweep) ,复制算法(Copying),标记--整理算法(Mark-Compact),分代收集算法(Generation Collection) 四种垃圾回收算法。

一、标记–清除算法(Mark-Sweep)

标记--清除算法


二、复制算法(Copying)

复制


新生代中的对象98%都是“朝生夕死” ;所以并不需要按1:1 划分空间,实际上采用的分代。

三 、标记–整理算法(Mark-Compact)

标记整理


四、分代收集算法(Generation Collection)

这里写图片描述


根据对象特性,使用分代处理,不同的生命周期使用不同的算法。分而治之。

默认比例 eden:s0 = 8 : 1; 当Survior空间不够时,需要依赖其他内存(老年代) 进行分配担保(Handle Promotion)


后记

方法区(method area)只是JVM规范中定义的一个概念,用于存储类信息、常量池、静态变量、JIT编译后的代码等数据,具体放在哪里,不同的实现可以放在不同的地方

HotSpot虚拟机中通常把方法区叫做 永久代(Permanent Generation)

  • 在Java 6中,方法区中包含的数据,除了JIT编译生成的代码存放在native memory的CodeCache区域,其他都存放在永久代;
  • 在Java 7中,Symbol的存储从PermGen移动到了native memory,并且把静态变量从instanceKlass末尾(位于PermGen内)移动到了java.lang.Class对象的末尾(位于普通Java heap内);
  • 在Java 8中,永久代被彻底移除,取而代之的是另一块与堆不相连的本地内存——元空间(Metaspace),‑XX:MaxPermSize 参数失去了意义,取而代之的是-XX:MaxMetaspaceSize

参考

  1. Chapter 2. The Structure of the Java Virtual Machine
  2. JEP 122: Remove the Permanent Generation
  3. 《 深入理解java虚拟机》
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值