基础JVM垃圾回收工作原理

java虚拟机采用的是一种“自适应的、分代的、停止—复制,标记—清扫”式的垃圾回收技术。

停止—复制机制:

首先暂停程序的运行,然后将所有存活的对象从当前堆复制到另一堆,没有复制的全是垃圾。当对象被复制到新堆时,他们是紧凑排列的。
这种方式需要2个堆,从而得维护比实际大一倍的空间。
程序在进入稳定状态时,可能产生的垃圾较少,但复制器仍然会将所有内存复制到另一处。

标记—清扫机制:

遍历所有的引用,标记每一个存活的对象。全部标记工作完成时,没有标记的对象将会被释放。所以剩下的空间是不连续的。同样,标记—清扫也必须在程序暂停的情况下进行。

分代机制:

分代算法把内存分为几块,根据不同块内的对象特点采用不同的垃圾回收机制。新建的对象放入新生代中,新生代中的对象经过几次垃圾回收后,存活的对象放入老年代中。所以老年代中的对象都是较为稳定、生命周期长的对象,再使用停止—复制的方法就不合适了,应采用标记—清扫的方法来进行老年代的垃圾回收。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值