关于JVM的垃圾回收的总结

本文介绍了Java虚拟机(JVM)中的两种主要垃圾回收机制:串行垃圾回收(Serial GC)和并行垃圾回收(Parallel GC)。串行垃圾回收适用于小型应用,采用单线程进行垃圾收集,工作时会暂停应用程序;而并行垃圾回收则利用多线程提高资源利用率和响应速度,是当前JVM默认的垃圾回收器。

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

垃圾回收在是JVM的重要特征之一。作为世界上最流行的编程语言,java在垃圾回收的处理上是花费了大量设计精力的,这也使得java不像c++那样,程序员在开发过程中要频繁的考虑内存问题。

话不多说,现在来介绍GC的两大类:

1、serial GC(-XX:+UseSerialGC)

顾名思义,单核GC。这种收集方式比较原始,只有单核cpu的时代就已经存在了。可是用这种方式比较影响性能,因为,它在工作的时候,别的工作线程就必须停止,cpu全心全意围着一个线程服务。这种方式一般适用于小型应用。

它的算法也比较简单:

第一步是查找出老年代存货的对象并且做好标记。第二步则是把这些存活的对象顺序的保存好。这个时候堆内存被划分为两个空间,一个是存满了老年代对象的空间,而另一个则是被压缩出来的空的空间。

2、 Parallel GC (-XX:+UseParallelGC)

多线程收集方式。相比较serial GC而言,多线程收集比较高效。你可以理解为多线程相对于单线程的优点。资源利用率高,响应快。

目前JVM默认的就是多线程回收器。

也许大家会觉得奇怪,JVM的回收器肯定不止这两种,当然,我必须告诉你,回收器的种类数量远远超出你的想象。尤其是多线程回收器,比如Parallel Old、CMS、G1等等,在这里我只把它们归为多线程回收器一类。这里面内容很多,后续有时间再研究。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值