Java类装入器解释

时间:2020-02-23 14:37:05  来源:igfitidea点击:

本文解释了Java类装入器的关键组件。

Java类装入器是Java虚拟机(JVM)的重要组成部分。它们用于加载类和接口。虽然类加载器是JVM不可分割的一部分,它们对于Java的内部工作非常重要,作为Java开发人员,我们不太可能需要在日常工作中创建定制的类装入器。例如,如果我们想创建将在Tomcat等容器上执行的应用程序,那么定制类装入器的实际应用程序就是这样。Tomcat所做的是为每个web应用程序创建一个类加载器(以便以后卸载webapps并释放内存)。

本文试图解释类加载器是如何工作的,并列出Java类加载器的关键组件。

什么是Java类加载器

我们知道Java程序运行在Java虚拟机(JVM)上。当我们编译一个Java类时,它会转换成独立于平台和机器的字节码。编译后的类存储为.class文件。当我们尝试使用一个类时,Java类加载器会将该类加载到内存中。当类在已经运行的类中被名称引用时,它们会被引入Java环境中。在第一个类运行之后,类加载器将在以后尝试加载类。运行第一个类通常是通过声明和使用static main()方法来完成的。

类装入器的层次结构

Java类加载器的类型

Bootstrap Class Loader–它加载JDK内部类,通常加载rt.jar例如其他核心类java.lang语言.*包类

扩展类装入器——它从JDK扩展目录加载类,通常是JRE的lib/ext目录。

系统类加载器–从系统类路径加载类,可以在使用-cp或者-classpath命令行选项调用程序时进行设置。

何时以及如何加载类

什么时候加载类?有两种情况:

执行新字节码时(例如, MyClassmc=new MyClass()