简述(JDK8)类加载器的分类以及每一种类加载器所加载的类?
时间: 2024-05-21 21:13:01 浏览: 16
JDK8类加载器可以分为四种:启动类加载器、扩展类加载器、应用程序类加载器和自定义类加载器。
启动类加载器负责加载JRE核心类库,如java.lang包中的类。
扩展类加载器加载Java平台扩展库中的类,这些库位于$JAVA_HOME/lib/ext目录下。
应用程序类加载器加载应用程序类路径上指定的类,它的类路径由CLASSPATH系统环境变量指定,或由java -cp选项指定。
自定义类加载器可以根据我们的需求来自定义,它可以用于一些需要特殊加载方式的类,如动态生成的类。
哈哈,不好意思,我好像不会讲笑话。但是我会尽力回答你的问题。
相关问题
jdk 8 的类加载器有哪些?
在JDK 8中,Java类加载器主要分为以下几种类型:
1. 启动类加载器(Bootstrap Class Loader):也称为根加载器,负责加载JVM运行时需要的核心类库,例如java.lang包中的类。
2. 扩展类加载器(Extension Class Loader):负责加载JVM的扩展类库,位于$JAVA_HOME/lib/ext目录下的jar包中的类。
3. 应用程序类加载器(Application Class Loader):也称为系统类加载器,负责加载应用程序的类。它是用户自定义的类加载器的默认父加载器。
此外,JDK 8中还引入了一个新的类加载器:
4. 平台类加载器(Platform Class Loader):用于加载JavaFX应用程序的类。JavaFX是Java的图形用户界面框架。
这些类加载器按照父子关系形成了一个层次结构,父加载器可以委托给子加载器进行类的加载。这种层次结构的设计可以实现类的隔离和动态加载,提供了灵活性和安全性。
需要注意的是,JDK 8中的类加载器是可以扩展和自定义的,开发人员可以通过编写自定义的类加载器来实现特定的需求,例如实现热部署、动态加载等功能。
tomcat类加载器
Tomcat的类加载器是一个关键的组件,它负责加载和管理Web应用程序中的类。Tomcat使用了一个叫做"Common Class Loader Architecture"的类加载器架构,它由三个主要的类加载器组成:
1. Bootstrap类加载器:这是Java虚拟机(JVM)内置的类加载器,负责加载JDK提供的核心类库,如java.lang包中的类。
2. Catalina类加载器:这是Tomcat特有的类加载器,负责加载Tomcat服务器自身需要的类,比如Tomcat的核心组件和功能模块。
3. Web应用程序类加载器:每个Web应用程序都有自己独立的类加载器,负责加载Web应用程序中的类。当一个Web应用程序被部署到Tomcat时,Tomcat会为该应用程序创建一个独立的类加载器。
Web应用程序类加载器使用了双亲委派模型,它首先尝试从父类加载器(即Catalina类加载器)中查找所需的类,如果找不到再自己尝试加载。这种层次结构的类加载方式能够保证不同Web应用程序之间的类互相隔离,避免了类冲突和安全问题。
通过这种类加载器架构,Tomcat能够有效地管理和隔离不同Web应用程序之间的类,提供了良好的应用程序部署和运行环境。同时,它也为开发人员提供了一些灵活的类加载机制,如可以将共享的类库放置在Tomcat的共享库目录中,以便多个Web应用程序共享使用。