类加载器的作用

Posted zitai

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了类加载器的作用相关的知识,希望对你有一定的参考价值。

  • 类加载的作用:将class文件字节码内容加载到内存中,并将这些静态数据转换成方法区的运行时数据结构,然后在堆中生成一个代表这个类的java.lang.Class对象,作为方法区中类数据的访问入口。
  • 类缓存:标准的JavaSE类加载器可以按要求查找类,但一旦某个类被加载到类加载器中,它将维持加载(缓存)一段时间,不过JVM垃圾回收机制(gc)可以回收这些Class对象。

技术图片

  • JVM规范定义了如下类型的类的加载器
    •   引导类加载器(根加载器):用C++编写,是JVM自带的类加载器,负责java平台核心库,用来装载核心库。该加载器无法直接获取
    •   扩展类加载器:负责jre/lib/ext目录下的jar包或-D java.ext.dirs 指定目录下的jar包装入工作库
    •       系统类加载器:负责java -classpath或-D java.class.path所指的目录下的类与jar包装入工作,是最常用的加载器。

 

测试用例:
技术图片
技术图片
 
双亲委托机制:
简单来说就是加载一个类进内存,先从系统类加载器找,往上从扩展类中找,往上再从根加载器中找。

以上是关于类加载器的作用的主要内容,如果未能解决你的问题,请参考以下文章

面试必看-Java类加载器(自定义类加载器)

Java类加载器的工作原理

类加载器

深入理解Java虚拟机 类加载器的命名空间以及类的卸载

Java虚拟机(JVM)-- 类加载器和双亲委派机制

Tomcat源码篇自定义类加载器那点儿事儿