JVM结构上图
一.类加载器
二.双亲委派
例如:需要用一个A.java这个类,首先去顶部Bootstrap根加载器去找,找得到你就用,找不到再下降一层,去Extension加载器去找,找得到就用,找不到再将一层,去AppClassLoader加载器去找,找得到就用,找不到就会报"CLASS NOT FOUND EXCEPTION"。
三.本地方法栈
四.PC寄存器
五.方法区
六.栈
栈管运行,堆管存储
栈是线程私有,不存在垃圾回收
栈帧的概念:java中的方法被扔进虚拟机的栈空间之后就成为“栈帧”,比如main方法,是程序的入口,被压栈之后就成为栈帧。
七.堆
八.JVM内存调参
九.GC回收算法
2.复制算法
3.标记清除
3.标记压缩