
目录
大家好,我是哪吒。
一、类加载器子系统的作用
类加载器子系统负责从文件系统或网络中加载class文件,class文件在文件开头有特定的文件标识。
ClassLoader只负责class文件的加载,至于它是否可以运行,则有执行引擎决定。
加载的类信息存放于一块称为方法区的内存空间。除了类的信息外,方法区中还会存放运行时常量池的信息,可能还包括字符串字面量和数字常量(这部分常量信息是class文件中常量池部分的内存映射)。

1、加载
- 通过一个类的全限定名获取定义此类的二进制字节流;
- 将这个字节流代表的静态存储结构转化为方法区的运行时数据结构;
- 在内存中生成一个代表这个类的java.lang.Class对象,作为方法区这个类的各种数据的访问入口;
2、链接
(1)验证(Verify)
- 目的在于确保Class文件的字节流中包含信息符合当前虚拟机要求,保证被加载类的正确性,不会危害虚拟机自身安全;
- 主要包括四种验证:文件格式验证、元数据验证、字节码验证、符号引用验证;
(2)准备(Prepare)
- 为类变量

本文介绍了Java类加载器子系统的作用,详细讲解了加载、链接、初始化的步骤,并探讨了双亲委派机制、类加载器的分类以及类的主动使用和被动使用。内容涵盖了类加载器如何保证多线程下的安全性,以及不同类型的类加载器如启动类加载器、扩展类加载器和应用程序类加载器的工作方式。
订阅专栏 解锁全文
1721





