最近这段时间实习,比较少写博客了,刷完了 LeetCode 上有关字符串、数组和矩阵类型的题目,利用下班时间看完了周志明的《深入理解Java虚拟机》,第一次看,感觉还是有点抽象的,一定要多通读几遍。
关于Java 虚拟机的知识,很多大佬早已经总结的非常好了,在这里我就不再重复叙述了,列个大概的学习目录就行,全当是自己学习的过程吧。
重点
- Java 内存区域(程序计数器、Java 虚拟机栈、本地方法栈、堆、方法区 各自得定义还有特点,运行时常量池 这里注意String还有八个基本类型的包装类,可参考JavaGuide相关GitHubString 类和常量池)
- 垃圾回收(对象是否存在、对象是否要回收、四种引用、垃圾收集算法(四种)、垃圾收集器)
- 对象内存分配(新生代、老年代、Eden)
- 类加载过程(加载(从哪加载)、验证、准备、解析、初始化每一步的过程,作用)
- 类加载器(分类、双亲委派模型的工作过程、好处、实现)
重中之重:
- Java 运行时数据区域(程序计数器、Java 虚拟机栈、本地方法栈、堆、方法区)
- 判断一个对象是否可被回收(引用计数算法、可达性分析法、强、软、弱、虚引用)
- 垃圾回收算法(标记清除、标记整理、复制、分代收集 各自的特点)
- 垃圾收集器(七个垃圾收集器,各自特点,三个新生代用,三个老年代用、还有个G1中新生代老年嗲都有用)
- 类加载过程以及类加载器 以上4、5点就是。
可以参考以下资料复习: