Skip to content

JVM加载一个类的过程一般分为三个阶段:加载、连接和初始化。

JVM加载一个类时,首先通过类加载器找到类的字节码然后进行验证、准备和解析,最后执行类的静态代码块和静态变量的赋值操作。

JVM如何加载一个类

1.谁来负责将Class文件加载到内存

  1. 类装载器负责加载Class文件,Class文件再文件开头特定的文件标识(CA FE BA BE)
  2. 类装载器只负责加载,是否可以允许由执行引擎(Execution Engine)决定

2.class文件存在内存哪个位置

类加载器从class文件抽取类信息放在方法区,类信息:方法代码,变量名,方法名,访问权限,返回值等等。

3.Class对象存储在哪里

。每当加载器从class文件加载一个类时都会加载类信息到方法区,同时生成class对象,Class对象new对各对象实例。

一个类什么时候进入JVM?

  1. 虚拟机启动时,执行main()方法的时候
  2. new对象的时候
  3. 读取静态字段或静态方法的时候

一个类进入JVM后经历了什么

类从被加载到虚拟机内存中开始,到GC卸载出内存为止,它的整个生命周期包括:

  • 加载、验证、准备、解析、初始化、使用和卸载七个阶段。

其中,加载、验证、准备、初始化、卸载这五个阶段发生的顺序是确定的,而解析阶段则不一定,它在某些情况下可以在初始化阶段之后开始。另外这7个阶段通常都是互相交叉的混合式进行的,通常会在一个阶段执行的过程中调用或激活另外一个阶段。

一个类进入jvm他经历了什么