JAVA 的垃圾回收机制

JAVA 的垃圾回收机制

* HotSpot虚拟机 *

分代收集

在 java 堆区可以被分为 新生代(YoungGen) 和 老年代(OldGen), 新生代又细分为 Eden 空间,
From Survivor空间, 和 To Survivor 空间.
这里写图片描述
java 堆区内存图

垃圾标记: 根搜索算法

以根对象集合作为起始,按照从上至下的方式搜索被根对象集合所连接的目标对象是否可达, 不可达说明
目标对象已经死亡.将其标记为垃圾对象

这里写图片描述

区域化分代式: G1(Garbage-Frist)收集器

将全堆扫描,改为堆内的块扫描.

初始标记:
标记 Root-Region
根区域扫描:
扫描 Root-Region 中引用的老年代的一些 Region 块(不会执行新生代内存回收,程序hang住)
并发标记:
找出整个 java 堆区中的存活对象(交叉执行新生代内存回收)
再次标记:
整个 java 堆区中存活对象标记(程序hang住)
清除:
计算活跃对象,并完全释放一些自由的Region块(程序hang住),然后处理
Remembered Set(程序hang住), 并发重置一些空闲Region块,并放回至空闲列表.
拷贝:
将存活的对象,复制到未使用过的Region块中.(程序hang住)

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值