Java基础知识虚拟机类加载机制

时间:2022-12-26 21:48:34

Java虚拟机把描述类的收从Class文件加载到内存,并对数据进行校验,转换解析和初始化,最终转化成可以被虚拟机直接使用的Java类型,这就是Java虚拟机的类加载机制。

1 类加载的步骤

a)加载

b)验证  准备 解析

c)初始化

d) 使用

e)卸载

一下的情况立即对类进行初始化

a)使用new关键字创建对象的时候,调用一个类的静态方法的时候

b)使用反射的时候

c)当初始化一个类的时候,发现其父类还有进行过初始化

d)虚拟机初始化主类

被动初始化:

a) 对于静态字段,只有直接定义这个字段的类才会被初始化 。

b)初始化数组

c)编译阶段将常量的值存储到常量池


2 在加载阶段,虚拟机要完成以下三件事情:

1) 通过一个类的权限定名来获取定义此类的二进制的字节流

2)将这个字节流所代表的存储结构转化为方法区的运行时的数据结构

3)在Java堆中生成一个代表这个类的java.lang.Class对象,作为方法区这些数据的访问入口

3 验证

验证是连接阶段的第一步,这一阶段的目的是为了确保Class文件的字节流中包含的信息符合当前虚拟机的要求,并且不会危害虚拟机自身的安全。