面试官:说一下JVM常用垃圾回收器的特点、优劣势、使用场景和参数设置

Java中的垃圾回收器几乎是面试中的必考点,无论是面试初级,中级还是高级,总免不了要问一问垃圾回收器的一些知识点。不管在实际开发中你使用程度怎么样,为了面试不被压价,还是非常有必要对它做一个较深入的理解。

本篇对JVM中常用的几种垃圾回收器的主要特点,使用场景及优化建议做一个简单介绍,希望起到抛砖引玉的效果,对你入门有所帮助。【参考文献】

新生代回收器

  • Serial
  • ParNew
  • parallel

老年代回收器

  • Serial Old
  • CMS
  • Parallel Old

新生代和老年代回收器

  • G1

Serial

特点

Serial收集器是最基本、发展历史最悠久的收集器。JDK1.3.1前是HotSpot新生代收集的唯一选择。

运行示意图

有如下特点:

  • 针对新生代;
  • 采用复制算法;
  • 单线程收集;
  • 进行垃圾收集时,必须暂停所有工作线程,直到完成;

优势:

  • 简单高效,由于采用的是单线程的方法,因此与其他类型的收集器相比,对单个cpu来说没有了上下文之间的的切换,效率比较高。

劣势:

  • 会在用户不知道的情况下停止所有工作线程。

使用场景

  • Client 模式(桌面应用)

在用户的桌面应用场景中,可用内存一般不大,可以在较短时间内完成垃圾收集,只要不频繁发生,这是可以接受的

  • 单核服务器

对于限定单个CPU的环境来说,Serial收集器没有线程切换开销,可以获得最高的单线程收集效率

参数设置

-XX:+UseSerialGC:添加该参数来显式的使用串行垃圾收集器

ParNew

特点

ParNew收集器其实就是Serial收集器的多线程版本,除了使用多线程进行垃圾收集之外,其余均和Serial 收集器一致。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值