前言
作为 Java 的从业者,在找工作的时候,一定会被问及关于 JVM 相关的知识。 JVM 知识的掌握程度,在很多面试官眼里是候选人技术深度的一个重要评判标准。而大多数人可能没有对 JVM 的实际开发和使用经验,接下来这一系列文章将带你深入了解 JVM 需要掌握的各个知识点。这也将帮助你完成从初级程序员到高级程序员的转变。
今天分享一份平时学习整理的Java程序员必备的JVM学习文档,这份文档不管是懂得JVM的开发者和刚刚学习的朋友都是一份非常不错的内容,同时也是面试复习的精选文档!还准备了一份目前互联网公司Java面试的高频面试知识点文档免费分享给大家!
这份JVM知识整理文档内容包括:
JVM内存区域
类加载机制
JVM执行子系统
垃圾回收器与内存分配策略
Java程序性能优化
双亲委派
性能优化(异步,集群,常用的优化手段)
一、Java内存域
1、虚拟机的历史
2、未来Java技术一览
3、运行时区数据
4、站在线程角度来看堆和栈
5、方法的出入栈
6、虚拟机中的对象
7、堆参数设置和内存溢出实战
二、垃圾回收器和内存分配策略
-
GC概述
-
判断对象的存活
-
辨析强、弱等各种应用
-
GC算法
-
分代收集
-
Stop The World现象
-
GC日志解读
-
内存分配与回收策略
-
内存泄露和内存溢出辨析
-
JDK为我们提供的工具
-
了解MAT
-
垃圾回收器
三、JVM的执行子系统
-
Class类文件本质
-
Class文件格式
-
字节码指令
-
类加载机制
-
栈帧详解
-
方法调用详解
-
基于栈的字节码解释执行引擎
四、编写高效优雅的Java程序员
1、构造器参数太多怎么办?
2、不需要实例化的类应该构造器私有
3、不要创建不必要的对象
4、避免使用终结方法
5、使类和成员的可访问性最小化
6、使可变性最小化
7、优先使用复合
8、接口优于抽象类
9、可变参数要谨慎使用
10、返回零长度的数组或集合,不要返回null
11、优先使用标准的异常
12、用枚举代替int常量
13、将局部变量的作用域最小化
14、精确计算,避免使用float和double
15、当心字符串连接的性能
五、深入了解性能优化
-
常用的性能评价/测试指标
-
常用的性能优化手段
-
详细了解应用服务性能优化