写在前面
普通二本毕业,四年工作经验,前段时间有幸获得阿里面试机会,对此本人也是非常重视,准备得特别充分!前前后后总共面了7面,前6面都是顺利通过,没想到最后一面的时候挂在了JVM上面!
JVM面题如下:
讲一下JVM堆内存管理(对象分配过程)
两个Region不是连续的,而且之间还有可达的引用,我现在要回收一个,另一个怎么处理?
.听说过CMS的并发预处理和并发可中断预处理吗?
到底多大的对象会被直接扔到老年代?
ThreadL ocal有没有内存泄漏问题?
我只答出来两道,最后痛失offer 失去了进阿里的机会。回去之后我下定决心要恶补JVM知识。掏出了我以前丢到收藏夹吃灰的JVM学习资源开启了我的恶补之路。
在此也是把我的JVM学习资源分享给大家,大家共同学习一起进步!
一、JVM学习进阶思维脑图(来自一位骨灰级扫地僧整理)
JVM知识点全部都总结在这里面了,清晰明了的确定学习JVM的方向!
需要的老铁请转发+关注,然后添加VX(tkzl6666)即可获得【JVM学习资源】的免费领取方式!
二、《JVM体系结构与GC调优》PPT(来自阿里P8Java架构师整理)
本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面试题及答案
需要的老铁请转发+关注,然后私信回复关键字 “233” 即可获得【JVM学习资源】的免费领取方式!
1. 内存模型以及分区,需要详细到每个区放什么。
2. 堆里面的分区:Eden,survival (from+ to),老年代,各自的特点。
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 垃圾回收机制?
15.java 内存模型
16.java 类加载过程?
17. 简述 java 类加载机制?
18. 类加载器双亲委派模型机制?
19.什么是类加载器,类加载器有哪些?
20.简述 java 内存分配与回收策略以及 Minor GC 和Major GC
JVM在性能调优中使用非常广泛,无论什么级别的Java从业者,JVM是进阶时必须迈的坎。如果不懂JVM的话,薪酬会非常吃亏。除了面试,学习JVM有利于更深入地理解 Java 这门语言,学好JVM,为未来排查线上问题打下坚实的基础。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。