java 虚拟机垃圾回收和内存分配

本文深入探讨了对象存活判断方法及垃圾收集算法,包括标记清除、复制算法等,并介绍了HotSpot虚拟机的具体实现方式。此外,还详细分析了7种垃圾收集器的特点及内存分配与回收策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、对象是否存活的判断

1: 引用计数器 (缺点 循环引用)

2: 可达性分析 

 

二、垃圾收集算法

1、标记清除 ,会产生碎片

2、复制算法 ,划分为大小相等的两块,只能使用一半的内存空间

3、标记整理,通过将存活对象都向一段移动,然后将边界的内存清理

4、分代算法: 新生代使用使用复制算法,老年代使用标记清除和标记整理

hotspot实现算法: 枚举根节点、安全点、安全区域 。(只有在安全点和安全区域清理) 

 

三、7种垃圾收集算法

新生代 : serial 单线程 、parnew (多线程的serial)、parallel(多线程 并行)

老年代:serial old 、parallel old  、CMS (并发 用户线程和gc线程同时进行)、G1收集器

 

四、内存分配和回收策略

1: 对象优先在eden 分配

2: 大对象直接进入老年待

3: 长期存活的对象进入老年代

4:    如果survior 空间中相同年龄对象大小的总和大于survior一半时,这些对象进入老年代

5: 保证老年代空间可以容纳新生代,不能容纳时,就需要full gc

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值