1 概念

java virtual machine为java虚拟机,运行使用jdk中编译器编译的java程序。

2 JVM内存模型

程序计数器:线程私有

Java虚拟机栈:线程私有

本地方法栈:线程私有

堆:线程共享,存放对象

方法区:线程共享

3 类加载过程

检查方法区中常量池是否有即将创建的这个对象的所属类的符号引用

检查这个符号引用所代表的类是否已经被JVM加载

 

 

加载类以及,直接与间接父类

静态成员加载:静态成员变量初始化,静态语句块的执行

非静态成员加载:非静态成员变量初始化,非静态语句块执行。

创建对象

执行构造器

延伸:

类显示加载

类隐示加载

 

4 老生代和新生代

 堆区分老生代和新生代

老生代:存放生命周期比较长的对象。gc经过多次垃圾回收没有被回收的对象或者大对象。

新生代:存放新生成的对象。

 

收藏 打印