JVM常见的几个面试题

作者: 美团Java | 来源:发表于2019-03-31 20:42 被阅读172次

这块内容并非每个面试官都会问,但是如果是应聘高P的话,这一环节是不可缺少的,面试的难易程度也不一样,有些面试官或许让你讲讲虚拟机的内存实现即可,有些也会让你解释垃圾回收的实现,当然也会有虚拟机调优的实战经验,线上问题排查等等。

当然了,每次看到简历上如果有提到JVM,不管是了解还是精通,我都会尝试问几个问题,从最简单的开始。

问题1

JVM的内存相关,如何实现?

Java堆,Java栈,程序计数器,方法区,1.7的永久代,1.8的metaspace....尽可能多说,顺带简短描述下每个内存区的用途,能想到的都讲出来。

问题2

那么Java的堆内存,如何细分?

很多同学回答这个问题的时候,上来就是啪啦啪啦说一通,当我问他你说的是哪种回收算法时,他愣住了,以为所有算法的内存实现都一样。

比如CMS、G1、ZGC的堆内存实现都不太一样,但是可以说出CMS算法的堆内存实现,已经可以过关了,但是如果能够继续说明下G1和ZGC的实现,那当然是加分项。

问题3

在cms算法中,young gc的实现过程?

先找出根对象,如Java栈中引用的对象、静态变量引用的对象和系统词典中引用的对象等待,把这些对象标记成活跃对象,并复制到to区,接着遍历这些活跃对象中引用的对象并标记,找出老年代对象在eden区有引用关系的对象并标记,最后把这些标记的对象复制到to,在复制过程还要判断活跃对象的gc年龄是否已经达到阈值,如果已经达到阈值,就直接晋升到老年代,YGC结束之后把from和to的引用互换。

其实这里又会遇到几个概念,最好的情况是,面试者可以自己说出来,比如:

  • promotion failed
  • concurrent mode failed

并说明什么情况下会发生,可以如何避免?

问题4

cms算法的几个过程中,哪几个是需要stw的?

这几个过程,为什么需要stw?

问题5

JVM GC问题排查以及性能调优经验

相关文章

  • JVM 高频面试题

    本章面试题如下:JVM三大性能调优参数,JVM 几个重要的参数JVM调优JVM内存管理,JVM的常见的垃圾收集器,...

  • 01.JVM 高频面试题

    掘金-JVM常见面试题解析

  • JVM常见的几个面试题

    这块内容并非每个面试官都会问,但是如果是应聘高P的话,这一环节是不可缺少的,面试的难易程度也不一样,有些面试官或许...

  • 深入理解虚拟机之虚拟机类加载机制

    《深入理解Java虚拟机:JVM高级特性与最佳实践(第二版》读书笔记与常见相关面试题总结 本节常见面试题(推荐带着...

  • 2018-05-11

    《深入理解Java虚拟机:JVM高级特性与最佳实践(第二版》读书笔记与常见相关面试题总结 本节常见面试题(推荐带着...

  • 深入理解虚拟机之类文件结构

    《深入理解Java虚拟机:JVM高级特性与最佳实践(第二版》读书笔记与常见面试题总结 本节常见面试题(推荐带着问题...

  • 深入理解虚拟机之虚拟机性能监控和故障处理工具

    《深入理解Java虚拟机:JVM高级特性与最佳实践(第二版》读书笔记与常见面试题总结 本节常见面试题(推荐带着问题...

  • 2018-05-11

    《深入理解Java虚拟机:JVM高级特性与最佳实践(第二版》读书笔记与常见面试题总结本节常见面试题(推荐带着问题阅...

  • 2018-05-11

    《深入理解Java虚拟机:JVM高级特性与最佳实践(第二版》读书笔记与常见面试题总结本节常见面试题(推荐带着问题阅...

  • JVM经典面试题(2021最新版)

    本文包含了JVM中内存结构、垃圾回收算法、垃圾回收器、类加载、双亲委派模型、和JVM调优的常见面试题。 本文收录于...

网友评论

    本文标题:JVM常见的几个面试题

    本文链接:https://www.haomeiwen.com/subject/yqkjmqtx.html