初学者轻松搞定,JVM类加载

1、什么是虚拟机的类加载机制?

Java虚拟机把Class文件加载到内存中,并且对数据进行了校验、转换解析和初始化这样过程,最终才形成可以被虚拟机直接使用的Java类型,这样的过程就叫类加载机制。

2、类加载的过程

Java虚拟机中类加载的全过程:加载、连接、初始化三个阶段,其中连接分为验证、准备和解析。

3、加载

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

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

3)在内存中生成一个代表这个类的java.lang.Class对象,作为方法区这个类的各种数据的访问入口。

4、 连接

1)验证:该阶段主要是确保class文件的字节流中包含信息是否符合当前JVM的要求,并且能被当前版本的虚拟机处理。包括四个验证:文件格式验证、元数据验证、字节码验证和符号引用验证。

2)准备:为类变量分配内存并且设置该类变量的默认初始值,即零值。

3)解析:将常量池内的符号应用转换为直接引用的过程。

5、初始化

类的初始化阶段是类加载过程的最后一个步骤。初始化阶段就是执行构造方法()的过程。也是Java虚拟机才真正开始执行类中编写的Java程序代码,

6、工作原理(面试爱问)

(1)如果一个类加载器收到了来加载请求,它 并不会自己先去加载,而是把这个请求委托给父类的加载器去执行;

(2)如果父类加载器还在其他父类加载器,则进一步向上委托,依次递归,请求最终将达到顶层的启动类加载器;

(3)如果父类加载器可以完成加载器无法完成此加载任务,子类加载才会尝试自己去加载,这就是双亲委托派模式。

7、双亲委派机制优势

避免类的重复加载保护程序安全,防止核心API被随意篡改8、判断两个类是否为一个类

在JVM中表示两个class对象是否为同一个类存在两个必要条件

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章