【0304】 学32Java 面试必考点 JVM 总结

一、通过学习JVM 需要了解那些东西?

1、深入了解 JVM 的内存模型和 Java 的内存模型;

2、要了解类的加载过程,了解双亲委派机制;

3、要理解内存的可见性与 Java 内存模型对原子性、可见性、有序性的保证机制;

4、要了解常用的 GC 算法的特点、执行过程,和适用场景,例如 G1 适合对最大延迟有要求的场合,ZGC 适用于 64 位系统的大内存服务中;

5、要了解常用的 JVM 参数,明白对不同参数的调整会有怎样的影响,适用什么样的场景,例如垃圾回收的并发数、偏向锁设置等。

6、知道在编程时如何合理利用栈上分配降低 GC 压力、如何编写适合内联优化等代码等。

7、解决过线上经常 FullGC 问题,排查过内存泄露问题等。

8、针对高并发低延迟的场景,如何调整 GC 参数尽量降低 GC 停顿时间,针对队列处理机如何尽可能提高吞吐率等;

9、了解 ZGC 高效的实现原理,了解 Graalvm 的特点等。

二、其他问题

1、什么情况下回触发FullGc?

年轻代进入老年代时空间不足、永久代空间不足(PermGen/Metaspace)
2、Java类加载器有几种?关系是什么?

3、双亲委派的加载流程是什么?好处?

4、1.8 为什么用Metaspace 替换掉PermGen? Metaspace 保存在哪里?

5、编译期会对指令做那些优化?(编译器的指令重排)

6、olatile 可以解决什么问题?如何做到?

强制主内存读写同步、防止指令重排序

7、GC 的分代回收?

8、对象引用的几种方式?什么特点?

强、弱、软、虚 在Gc 中的处理方式

9、JVM 调试工具,主要分析那些内容?

MC 中的飞行记录器,堆分析工具 MAT,线程分析工具 jstack 和获取堆信息的 jmap 等。

10、G1 与CMS 的区别?

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值