垃圾回收算法

垃圾回收算法

**标记-清除算法:**在标记阶段标记所有从根节点出来的对象,未被标记的对象就是被引用的对象,在清除阶段就清除那些没有被标记的对象。 缺点:要遍历对象两次 效率低容易产生内存碎片,使内存碎片化

**复制算法:**分左右两个内存空间,左边有对象,右边空的。将左边对象复制到另外右边内存中,将垃圾对象回收,将左空间清空,再将已经回收过垃圾的右空间复制过去,进行垃圾回收。 缺点:需要一块空的内存空间,需要移动的对象

**标记整理算法:**标记的都是存活对象,复制算法将存活对象复制到另外一块内存上然后清除之前使用的内存,而整理算法是移动存活的对象到一端,然后清除边界以外的内存。缺点:需要有移动的内存空间

**分代回收算法:**是目前虚拟机使用的回收算法,用于整理新生代,老年代和永久代,它们在内存之中的比重是8:1:1将多次没有被清除的对象移到老年代中,清除新生代中内容,在将老年代中一直清除不了的移到永久代中

如何确认JVM中的垃圾:

标记-清除算法:标记阶段标记所有从根节点出来的对象,未被标记的对象就是需要清除的垃圾

可达性分析算法:对象可达指的就是:双方存在直接或间接的引用关系。遍历对象图,

相关推荐
Javatutouhouduan1 分钟前
Java初学者如何高效学习JVM?
java·jvm·java虚拟机·java面试·后端开发·java程序员·java八股文
2602_959960923 小时前
电商场景Java面试:Spring Boot、JVM、Redis、Kafka、微服务与分布式事务考点解析——谢飞机的作死面试记
java·jvm·spring boot·redis·面试题
wuminyu4 小时前
JDK21中FFM api的upcall回调机制解析
java·linux·c语言·jvm·c++
松仔log4 小时前
Kotlin中级——协程
java·jvm·kotlin
吴声子夜歌1 天前
Java面试题——JVM(二)
java·开发语言·jvm
Dicky-_-zhang2 天前
大模型部署架构:从推理引擎到弹性扩缩容的工程实践
java·jvm
聊浮游2 天前
JAVA2026最新全套学习资料、学习路线
java·开发语言·jvm·mysql·spring·maven·idea
阿昌喜欢吃黄桃2 天前
RocketMQ 同一 JVM 启动多个 Producer 导致 NameServer 只连一个的问题
jvm·rocketmq·mq
2602_959960922 天前
大厂Java面试:Spring Boot、JVM、Redis、Kafka与Elasticsearch在内容社区UGC场景下的实战拷问
java·jvm·spring boot·redis·面试题
典典分享指南3 天前
用指纹算法给文章去重:mid_signature 实战
jvm·maven·intellij-idea·jetty