什么是类加载器?类加载器有哪些?

简介: 类加载器(ClassLoader)是Java虚拟机(JVM)的一部分,用于将类的字节码加载到内存中,并生成对应的Class对象。类加载器负责查找、加载和链接类的过程。

Java中的类加载器可以分为以下几种类型:

  1. 启动类加载器(Bootstrap ClassLoader):它是JVM的一部分,负责加载Java的核心类库,如java.lang包中的类。它是JVM自身的一部分,由C++实现,不是Java类,因此在Java中无法直接获取到启动类加载器的引用。
  2. 扩展类加载器(Extension ClassLoader):它负责加载Java的扩展类库,位于JRE的lib/ext目录下的jar包。开发者可以通过系统属性java.ext.dirs指定扩展类库的路径。
  3. 应用程序类加载器(Application ClassLoader):也称为系统类加载器,它负责加载应用程序的类,即开发者自己编写的类。它是ClassLoader类的子类,是Java中默认的类加载器。
  4. 自定义类加载器:开发者可以通过继承ClassLoader类,实现自己的类加载器。自定义类加载器可以加载特定路径下的类文件,或者从其他来源(如网络、数据库)加载类。

类加载器采用双亲委派模型(Parent Delegation Model)来加载类。即当一个类加载器收到加载类的请求时,它会首先将这个请求委派给父加载器来尝试加载,只有当父加载器无法加载时,才会由当前加载器自己来加载。

这种层次结构的类加载器可以保证Java类的安全性和一致性。通过双亲委派模型,可以确保核心类库的安全性,避免了不同类加载器加载同一个类的问题。同时,开发者也可以通过自定义类加载器来实现特定的加载逻辑,例如加载加密的类文件、加载网络上的类等。

目录
相关文章
|
前端开发 Java 开发者
什么是类加载器,类加载器有哪些?
什么是类加载器,类加载器有哪些?
86 0
|
6月前
|
前端开发 安全 Java
JVM ClassLoader 类加载器
类加载器,即ClassLoader,它负责加载class文件,class文件在文件开头有特定的文件标示,并且ClassLoader只负责class文件的加载,至于它是否可以运行,则由Execution Engine决定。
|
缓存 前端开发 安全
深入理解Java类加载器(ClassLoader)
深入理解Java类加载器(ClassLoader)
586 0
|
前端开发 Java 开发者
JVM的类加载器
JVM(Java虚拟机)的类加载器(ClassLoader)是Java程序中负责加载Java类文件的组件。类加载器在运行时动态地将类文件加载到JVM中,并生成对应的Class对象,使得Java程序能够使用这些类。
86 0
|
前端开发 安全 Java
JVM类加载器
JVM类加载器
|
安全 前端开发 Java
双亲委派模型与类加载器
我们都知道类都是通过类加载器被加载进虚拟机中的,那这个类加载器有哪些呢?我们平时写的代码又是通过什么类加载器被加载进虚拟机中的呢?类加载器的工作模式又是什么呢?带着疑问一起去学习下双亲委派模型与类加载器。
128 0
双亲委派模型与类加载器
|
Java 应用服务中间件 数据库
类加载器系列(三)——如何自定义类加载器
类加载器系列(三)——如何自定义类加载器
1277 0
类加载器系列(三)——如何自定义类加载器
|
安全 前端开发 Java
双亲委派模型与自定义类加载器
双亲委派模型与自定义类加载器
双亲委派模型与自定义类加载器
|
SQL Java 关系型数据库
深入JVM类加载器(2)
深入JVM类加载器
94 0
深入JVM类加载器(2)
|
缓存 安全 Java
深入JVM类加载器(1)
深入JVM类加载器
99 0
深入JVM类加载器(1)