7 面阿里前 6 面顺利通过,没想到最后一面居然挂在了 JVM 上面!临走时面试官给了我一份 JVM 复习资源让我好好补补这方面的技术欠缺。
写在前面
普通二本毕业,四年工作经验,前段时间有幸获得阿里面试机会,对此本人也是非常重视,准备得特别充分!前前后后总共面了 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,为未来排查线上问题打下坚实的基础。
评论 (1 条评论)