关于JVM的垃圾回收的总结

垃圾回收在是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等等,在这里我只把它们归为多线程回收器一类。这里面内容很多,后续有时间再研究。




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值