(一)JVM开篇
为什么要学习他
JVM是什么
JVM由哪些部分组成,运行流程是什么
学习什么
(二)什么是程序计数器
程序计数器:线程私有的,内部保存的字节码的行号.用于记录正在执行的字节码指令的地址
程序计数器总结
(三)Java堆
Java堆总结
(四)什么是虚拟机栈
什么是虚拟机栈
垃圾回收是否涉及栈内存
垃圾回收主要指的就是堆内存,当栈帧弹栈以后,内存就会释放
栈内存分配越大越好吗
未必,默认的栈内存通常为1024k
栈帧过大会导致线程数变少,例如,及其总内存为512m,目前能活动的线程数则为512个,如果把栈内存改为2048k,那么能活动的栈帧就会减半
方法内的局部变量是否线程安全
栈内存溢出情况
虚拟机栈常见面试题总结
堆栈的区别是什么
(五)方法区
什么是方法区
方法区(Method Area)是各个线程共享的内存区域
主要存储类的信息,运行时常量池
虚拟机启动的时候创建,关闭虚拟机是释放
如果方法区域中的内存无法满足分配请求,则会抛出OutOfMemoryError:Metaspace
什么是常量池
可以看做是一张表,虚拟机指令根据这张常量表找到要执行的类名,方法名,参数类型,字面量等信息
运行时常量池
方法区总结
(六)直接内存
什么是直接内存
常规IO的数据拷贝流程
NIO数据拷贝流程
直接内存常见面试题总结
什么是类加载器,类加载器有那些![](https://i-blog.csdnimg.cn/direct/29da6ddf4bde47389f5542cde29170ea.png)
![](https://i-blog.csdnimg.cn/direct/51d4ff89436c489a85495e4c8609b8b2.png)
类加载器总结![](https://i-blog.csdnimg.cn/direct/95caf5c551544c42a512359207354b5b.png)
什么是双亲委派模型![](https://i-blog.csdnimg.cn/direct/b0f90ba04c6a41a29e5a6b000768ef1d.png)
![](https://i-blog.csdnimg.cn/direct/d2eeeeb8dcc04946b2375907ac1d81fb.png)
JVM为什么采用双亲委派机制![](https://i-blog.csdnimg.cn/direct/1b992f47c51d446a846ce04e9464d105.png)
双亲委派机制总结![](https://i-blog.csdnimg.cn/direct/86a21a55513140f28f6f2bb0b2757901.png)
(八)类装载的执行过程
加载![](https://i-blog.csdnimg.cn/direct/1750017c92594800a9ada72d6751b41d.png)
验证![](https://i-blog.csdnimg.cn/direct/b8af311dfc1d49d19414dfd2a0a107ef.png)
准备![](https://i-blog.csdnimg.cn/direct/14fb40a81d4242b6ba0f55b5bce429a0.png)
解析![](https://i-blog.csdnimg.cn/direct/a7a7543e5b264530808b40915d45b545.png)
初始化![](https://i-blog.csdnimg.cn/direct/091e07b83c434c50a7fbc1b82b56c6c9.png)
使用![](https://i-blog.csdnimg.cn/direct/36809527b6ca4d349ae46f6f4a31035a.png)
卸载
当用户程序代码执行完后,jvm就开始销毁创建的class对象就叫做卸载
类装载执行过程常见面试题总结![](https://i-blog.csdnimg.cn/direct/2cd5dd8a8cee4130992b42073b1f0d67.png)
(九)垃圾回收机制
对象什么时候可以被拉机器回收![](https://i-blog.csdnimg.cn/direct/399aa2547d2746c5ab5a73adf509b3a8.png)
引用计数法![](https://i-blog.csdnimg.cn/direct/36f310d7b54440b3a84eed00db99acf9.png)
可达性分析算法![](https://i-blog.csdnimg.cn/direct/1a32b7669e494b71bb325f9b68c0af7a.png)
哪些对象可以作为GC Root![](https://i-blog.csdnimg.cn/direct/a29ed5c8cacd4938af0c19afd9c029eb.png)
垃圾回收机制常见面试题总结![](https://i-blog.csdnimg.cn/direct/be76a35bfd4644c8a86c149861ac12e9.png)
(十)JVM垃圾回收算法有哪些
1.标记清除算法
2.复制算法
3.标记整理算法
标记清除算法![](https://i-blog.csdnimg.cn/direct/8a101d4111374fa7aec0ce3e319869c9.png)
标记整理算法![](https://i-blog.csdnimg.cn/direct/21748cf2c636452ea38e5c2f179e9334.png)
复制算法![](https://i-blog.csdnimg.cn/direct/e14315f8746942649907ed8f48128980.png)
垃圾回收算法总结![](https://i-blog.csdnimg.cn/direct/d6f87b38e6bd4ff082e416d5c3838e2c.png)
(十一)JVM中的分代回收
分代收集算法![](https://i-blog.csdnimg.cn/direct/e73b17aeb64d488d8dff0d38ee1c89cf.png)
分代收集算法--工作机制![](https://i-blog.csdnimg.cn/direct/251cc892b188427cb1879c4232969a51.png)
![](https://i-blog.csdnimg.cn/direct/36fc9e373c3b4b0086ab093928465e90.png)
![](https://i-blog.csdnimg.cn/direct/b9d9441b82de465aab5f51dcb176c5d1.png)
![](https://i-blog.csdnimg.cn/direct/039622a186a845c0bec610342c9389c7.png)
![](https://i-blog.csdnimg.cn/direct/90dfd5eb4e2b4a0abd35c8184bcdfbba.png)
![](https://i-blog.csdnimg.cn/direct/ed48c17e6131496d85f8b255c1a3c9c1.png)
MinorGC,Mixed GC,FullGC的区别![](https://i-blog.csdnimg.cn/direct/e8acf18523784bbe84df4720e5b7ed7c.png)
分代回收总结![](https://i-blog.csdnimg.cn/direct/86ee70ec97f846d6a7649e2162209c42.png)
(十二)JVM中的垃圾回收器
JVM中的垃圾回收期
1.串行垃圾收集器
2.并行垃圾收集器
3.CMS(并发)垃圾收集器
4.G1垃圾收集器