一、什么是类加载器?
Java类加载器是Java运行时环境的一部分,负责动态加载Java类到Java虚拟机的内存空间中。类通常是按需加载,即第一次使用该类时才加载。由于有了类加载器,Java运行时系统不需要知道文件与文件系统。学习类加载器时,掌握Java的委派概念很重要。
二、它是干什么的?
类加载器它是在虚拟机中完成的,负责动态加载Java类到Java虚拟机的内存空间中,在经过 Java 编译器编译之后就被转换成 Java 字节代码(.class 文件)。类加载器负责读取 Java 字节代码,并转换成 java.lang.Class类的一个实例。
三、类加载器的层次
四、类加载器的四个方面
启动类加载器,没有父类。 拓展类加载器由Java语言实现,父类加载器为null 系统类加载器,由Java语言实现 自定义类加载器,父类加载器肯定为AppClassLoader
Bootstrap ClassLoader:这是第一个类加载器,它是Extension类加载器的超类。它会加载rt.jar文件,该文件包含Java Standard Edition的所有类文件,例如java.lang包类,java.net包类,java.util包类,java.io包类,java.sql包类等。 扩展ClassLoader:这是Bootstrap的子类加载器,是System类加载器的父类加载器。它加载位于$ JAVA_HOME / jre / lib / ext目录中的jar文件。 系统/应用程序类加载器:这是扩展类加载器的子类加载器。它从类路径加载类文件。默认情况下,类路径设置为当前目录。您可以使用“ -cp”或“ -classpath”开关更改类路径。它也被称为应用程序类加载器。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。