首页天道酬勤jvm类加载机制原理,java类加载机制详解

jvm类加载机制原理,java类加载机制详解

张世龙 05-12 09:48 106次浏览

今天的爱情分享会给大家带来java类的加载过程吗? 【面试问题的详细情况】,希望对大家有帮助。

加载java类需要七个进程:

公路自行车

加载时类的第一个加载过程。 在此阶段,您将完成以下三项: 1从一个类的全限定名称中检索该类的二进制流。

2 .将二进制流中的静态存储结构转换为方法执行时的数据结构。 3 .在存储器中生成该类的Class对象,作为该类的数据访问条目。 验证

验证的目的是防止Class文件字节流中的信息危害虚拟机。 在此阶段,主要在以下四分钟内验证:

1 .文件格式验证:字节流验证是否符合Class文件规范。 例如,验证主和辅助版本号是否在当前虚拟机的范围内,以及常量池中是否存在不支持的类型。

2 .元数据验证器:对字节码中描述的信息进行语义分析,诸如该类是否有父类、是否集成了未继承的类等。

3 .字节码验证:是整个验证过程中最复杂的阶段,通过对验证数据流和控制流的分析,确定程序含义是否正确,主要针对方法论体的验证进行。方法中的类型转换是否正确,跳转指令是否正确等。

4 .符号引用验证:的操作发生在随后的分析过程中,主要是为了确保分析操作的正确执行。

准备阶段是为类的静态变量分配内存,并将其初始化为默认值。 这些内存在方法区域中分配。 在准备阶段,不分配类中实例变量的内存。 实例变量在实例化对象时与对象一起分配给Java堆。

公共静态int value=123; //在准备阶段,value的初始值为0。 在初始化阶段首次达到123。

分析

在此阶段,主要完成从符号参照到直接参照的转换行为。 分析动作不一定是初始化动作完成之前,也有可能是初始化之后。

初始化时类加载的最后一步,上一个类加载步骤,除了加载阶段用户APP应用程序可以通过自定义类加载器参与外,其余行为完全由虚拟机主导和控制。 到了初始化阶段,类中定义的Java程序代码将正式开始执行。

java中级开发面试题,中高级java面试题及答案