1、JVM的组成
1.1、什么是程序计数器?
1.2、介绍下Java堆
JDK1.7与JDK1.8的内存结构区别
为什么会有这种内存结构的区别?
因为元空间/方法区存储的都是一些常量,项目随着动态类加载的情况越来越多,这块儿内存的大小就变的越来越不可控。小了会出现系统的内存溢出,大的话又浪费内存,现在都放到了本地内存,防止堆内存溢出(OOM)
1.3、什么是虚拟机栈?
1.4、解释一下方法区
1.5、你听过直接内存吗?
用直接内存就少拷贝了一次
2、类加载器
2.1、什么是类加载器?
2.2、什么是双亲委派模型?
2.3、类加载的执行流程
3、垃圾回收
3.1、对象什么时候可以被回收?
3.2、JVM的垃圾回收算法有哪些?
3.3、说一下JVM的分代回收
3.4、JVM有哪些垃圾回收器?
初始标记是先找出跟GC ROOT直接相连的对象
并发标记是找出剩下的对象