写在前面

普通二本毕业,四年工作经验,前段时间有幸获得阿里面试机会,对此本人也是非常重视,准备得特别充分!前前后后总共面了7面,前6面都是顺利通过,没想到最后一面的时候挂在了JVM上面!

JVM面题如下:

讲一下JVM堆内存管理(对象分配过程)

两个Region不是连续的,而且之间还有可达的引用,我现在要回收一个,另一个怎么处理?

.听说过CMS的并发预处理和并发可中断预处理吗?

到底多大的对象会被直接扔到老年代?

ThreadL ocal有没有内存泄漏问题?

我只答出来两道,最后痛失offer 失去了进阿里的机会。走的时候面试官给我发了一份JVM复习资料大礼包让我好好学习学习,回去之后我也下定决心要恶补JVM知识。在此也是把这份JVM学习资源分享给大家,大家共同学习一起进步!

一、JVM学习进阶思维脑图

JVM知识点全部都总结在这里面了,清晰明了的确定学习JVM的方向!

需要的老铁请转发+关注,然后添加VX(tkzl6666)即可获得【JVM学习资源】的免费领取方式!

二、《JVM体系结构与GC调优》PPT

本PPT从JVM体系结构概述、GC算法、Hotspot内存管理、Hotspot垃圾回收器、调优和监控工具六大方面进行讲述。

此PPT长达46页,全部展示篇幅过长,随意抽出9张作为展示。

三、JVM调优实战视频合集

马士兵老师用四个小时,带你走进JVM实战调优的世界,帮助你在面对那些上亿用户,千万QPS,百万TPS,以及每天上PB级大数据量处理系统的时候,不再胆怯,不再心虚,开启涨薪升级之旅!

需要的老铁请转发+关注,然后添加VX(tkzl6666)即可获得【JVM学习资源】的免费领取方式!

1、什么是垃圾?

2、如何定位垃圾?

3、常用垃圾回收算法

4、常用垃圾回收器

5、系统上线前预估系统的内存占用情况

6、系统上线前预估系统的并发访问情况

7、根据预估值设定JVM初始参数

8、压力测试方法论

9、根据压测结果调整参数值

10、系统上线后设定日志参数

11、定期观察日志情况

12、根据日志解决实战问题

13、为什么一个百万级TPS系统会频繁GC?

14、定位JVM问题的实用参数设置

15、用top命令观察系统运行情况

16、用jps定位虚拟机进程

17、用jstat定位JVM问题

18、用jmap导出内存转储文件

19、用jstack定位问题线程

20、用jhat分析转储文件

21、其他给力的工具visual VM,MAT,Arthas介绍

22、动手实战

四、《深入理解Java虚拟机:JVM高级特性与最佳实践(第3版)周志明著》

这本书Java程序员一定要读一读,目前这本书的电子版市面上很难找到!

本书浅显易懂。最重要的是开启一扇理解虚拟机的大门。

内存管理机制与Java内存模型、高效并发这三章是特别实用的。

需要的老铁请转发+关注,然后添加VX(tkzl6666)即可获得【JVM学习资源】的免费领取方式!

第1章 走近]ava

第2章 Java内 存区域与内存溢出异常

第3章 垃圾收集器与内存分配策略

第4章 虚拟机性能监控、故障处理工具

第5章 调优案例分析与实战

第6章 类文件结构

第7章 虚拟机类加载机制

第8章 虚拟机字节码执行引擎

第9章 类加载及执行子系统的案例与实战

第10章 前端编译与优化

第11章 后端编译与优化

第12章 Java内存模型与线程

第13章 线程安全与锁优化

五、JVM面试题及答案

需要的老铁请一键三连+评论,然后添加VX(tkzl6666)即可免费领取【JVM学习资源】

1. 内存模型以及分区,需要详细到每个区放什么。

2. 堆里面的分区:Eden,survival (from+ to),老年代,各自的特点。

3. 对象创建方法,对象的内存分配,对象的访问定位。

4. GC 的两种判定方法

5. SafePoint 是什么

6. GC 的三种收集方法:标记清除、标记整理、复制算法的原理与特点,分别用在什么地方,如果让你优化收集方法,有什么思路?

7. GC 收集器有哪些?CMS 收集器与 G1 收集器的特点。

8. Minor GC 与 Full GC 分别在什么时候发生?

9. 几种常用的内存调试工具:jmap、jstack、jconsole、jhat

10. 类加载的几个过程

11.JVM 内存分哪几个区,每个区的作用是什么?

12.如何判断一个对象是否存活?(或者 GC 对象的判定方法)

13.简述 java 垃圾回收机制?

14.java 中垃圾收集的方法有哪些?

15.java 内存模型

16.java 类加载过程?

17. 简述 java 类加载机制?

18. 类加载器双亲委派模型机制?

19.什么是类加载器,类加载器有哪些?

20.简述 java 内存分配与回收策略以及 Minor GC 和Major GC

 

JVM在性能调优中使用非常广泛,无论什么级别的Java从业者,JVM是进阶时必须迈的坎。如果不懂JVM的话,薪酬会非常吃亏。除了面试,学习JVM有利于更深入地理解 Java 这门语言,学好JVM,为未来排查线上问题打下坚实的基础。