类加载器的作用及加载过程
文章目录
1.简图
2.详细图
3.类加载子系统作用
1.类加载器子系统负责从文件系统或者网络中加载Class文件,class文件在文件开头有特定的文件标识。(在链接阶段中验证阶段去验证文件标识)
2.ClassLoader只负责class文件的加载,至于他是否可以运行,则由Execution Engine(执行引擎)决定。
3.加载的类信息存放于一块称为方法区的内存空间,除了类的信息外,方法区中还会存放运行时常量池信息,可能还包括字符串字面量和数字常量(这部分常量信息是Class文件中常量池部分的内存映射)
4.类加载器ClassLoader角色
1.class file 存在于本地硬盘上,可以理解为设计师画在纸上的模板,而最终这个模板在执行的时候是要加载到JVM当中来根据这个文件实例化出n个一模一样的实例。
2. class file加载到JVM中,被称为DNA元数据模板,放在方法区。
3.在.class文件-> JVM->最终成为元数据模板,此过程就要一个运输工具(类装载器class Loader),扮演一个快递员的角色。
5.类的加载过程
1.加载
1.通过一个类的全限定名获取定义此类的二进制字节流
2.将这个字节流所代表的静态存储结构转化为方法区的运行时数据结构
3.在内存中生成一个代表这个类的java.lang.cass对象,作为方法区这个类的各种数据的访问入口