JVM是什么:是操作系统上Java运行的环境。

JVM内存结构模型:

调优和垃圾回收都是在堆里的

 

 

 双亲委派:各种类加载器是层级关系,Java文件首先会给父类加载,类加载器实际上就是很多jar包,每个类加载器会检查自己的jar包是否可以处理Java文件,不可以会给下一层,如果都不可以就会抛出异常class not found.

沙箱:把Java代码限制在JVM内运行,限制其访问资源,实现对代码的隔离,保证安全性

 实例化对象的过程:在栈里丢进去对象名字,然后在堆里实例化一个对象,栈里的引用指向堆里的对象,就是实例化对象的过程

 

 对象首先在eden区创建,然后在eden满了后会触发minor GC,如果还存活,就会来到幸存者区,分成from,to,存活对象在from,to之间移动并发生GC(这里用到复制算法),在经历一定次数的GC后还存活,就会转移到老年代。

永久区:存jdk自带的对象,没有垃圾回收,关闭虚拟机后会释放内存。

栈帧:用来保存函数的返回地址和局部变量,给函数提供一个执行的环境。

 年轻代存活率低,用复制算法。

老年代存活率高,用标记清除和整理综合使用。