java类加载器那三种(Java类加载)

Java 类加载器

Java 类加载器是 JVM 的一个重要组成部分,其作用是按需加载 Java 类及其相关资源文件。Java 类加载器的核心作用主要包括以下三点:

内置加载器

Java 内置三种类加载器:

  1. 启动类加载器(Bootstrap ClassLoader):用于加载 JVM 自身或者在 jre/lib/rt.jar 中的核心类库,该类加载器是由 C++语言实现的,因此无法在 Java 代码中直接引用;
  2. 扩展类加载器(Extension ClassLoader):用于加载 jre/lib/ext 下的扩展库,可通过 System.getProperty("java.ext.dirs")获取该类加载器的搜索路径;
  3. 系统类加载器(System ClassLoader):也称为应用类加载器,负责加载用户类路径(Classpath)下的类文件和资源文件,可通过 ClassLoader.getSystemClassLoader() 获取该类加载器。

自定义加载器

Java 类加载器还提供了一种扩展能力,即可以通过编写自定义类加载器,去实现一些特定的类加载功能,比如从网络资源加载类,或者实现动态更新等功能。

实现一个自定义类加载器的基本流程如下:

  1. 继承自 java.lang.ClassLoader 类;
  2. 重写 findClass(String name) 方法,自定义该方法的加载逻辑;
  3. 在 findClass 方法中调用 defineClass 方法,完成类加载的过程;
  4. 如果需要使用父类加载器加载类,可调用 findClass(name) 方法。

类加载器的双亲委派模型

Java 类加载器实现类加载的过程采用的是双亲委派模型,即类加载时,会先将请求委派给它的父类进行处理,只有在父类找不到该类时,才会去让子类进行处理。

java类加载器那三种(Java类加载)

这种模式的优势在于,在 Java 虚拟机中存在多个类加载器的情况下,可以确保每一个类都被加载一次,并且被加载到容器中,从而避免了内存中出现多个相同的类。同时,还可以保证 Java 类的安全性,可以避免自定义类加载器加载非法类的情况。

总的来说,Java 类加载器具有较强的灵活性和扩展能力,同时支持自定义或者在基础加载器基础之上创建新的类加载器,以满足不同的业务需求。而为了实现 Java 应用程序的安全和稳定性,类加载器的双亲委派模型保障了 Java 虚拟机中任何类的加载都是经过安全检查的,从而有效控制了恶意程序的运行。

本文来自投稿,不代表亲测学习网立场,如若转载,请注明出处:https://www.qince.net/javannt.html

郑重声明:

本站所有内容均由互联网收集整理、网友上传,并且以计算机技术研究交流为目的,仅供大家参考、学习,不存在任何商业目的与商业用途。 若您需要商业运营或用于其他商业活动,请您购买正版授权并合法使用。

我们不承担任何技术及版权问题,且不对任何资源负法律责任。

如遇到资源无法下载,请点击这里失效报错。失效报错提交后记得查看你的留言信息,24小时之内反馈信息。

如有侵犯您的版权,请给我们私信,我们会尽快处理,并诚恳的向你道歉!

(0)
上一篇 2023年4月24日 下午6:03
下一篇 2023年4月24日 下午6:03

猜你喜欢