ClassLoader 类加载器简介|学习笔记

简介: 快速学习 ClassLoader 类加载器简介

开发者学堂课程【Java 高级编程 ClassLoader 类加载器简介】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/20/detail/391


ClassLoader 类加载器简介


简介:

1、具体内容

2、系统类加载器

 

具体内容:

在 Java 语言里面提供有一个系统的环境变量:CLASSPATH,这个环境属性的作用主要是在 JVM 进程启动的时候进行类加载路径的定义,在 JVM 里面可以根据类加载器而后进行指定路径中类的加载,换一种说法找到了类的加载器就意味着找到了类的来源。


图片1.png


系统类加载器:

如果说现在要想获得类的加载器,那么一定要通过 ClassLoader 来获取,而要想获取ClassLoader 类的对象,则必须利用 Class 类(反射的根源)实现。

 

方法public ClassLoader getClassLoader();当获取了 ClassLoader 之后还可以继续获取其父类的 ClassLoader 类对象: public final ClassLoader getParent().

 

范例:观察类加载器

package cn.mldn. demo;

class Message i

public class avaAPIDemo i

public static void main(string[ ] args) throws Exception {

class<?> clazz = Message.class ;

system.out.println(clazz.getclassLoader());//获取当前类的加载器

System.out.println(clazz.getClassLoader().getParent());//获取父类加载器

}

}

程序执行结果:

jdk.internal.loader.ClassLoaders$AppClassLoader@6659c656

jdk.internal.loader.ClassLoaders$PlatformClassLoader@5d3411d

null

从 JDK 1.8 之后的版本(JDK1.9、JDK1.10)提供有一个‘PlatformClassLoader”类加载器,而在 JDK1.8 及以前的版本里面提供的加载器为“ExtClassLoader”,

因为在 JDK 的安装目录里面提供有一个 ext 的目录,开发者可以将 *.jar 文件拷贝到此目录里面,这样就可以直接执行了。

但是这样的处理开发并不安全,最初的时候也是不提倡使用的,所以从 JDK 1.9 开始将其彻底废除了,同时为了与系统类加载器和应用类加载器之间保持设计的平衡,提供有平台类加载器。

图片2.png

当你获得了类加载器之后就可以利用类加载器来实现类的反射加载处理。

相关文章
|
文字识别 自然语言处理 达摩院
一文上手文档智能Document Mind
简要讲述文档智能Document Mind以及文档智能的功能测试
一文上手文档智能Document Mind
ly~
|
12月前
|
安全 Java 大数据
php跟java有什么区别
PHP 和 Java 是两种常用编程语言,各有特色。PHP 语法简洁灵活,适用于快速开发中小型网站,尤其在 Web 脚本和数据库交互中表现出色。Java 则语法严谨,强类型特性使其在企业级应用、移动开发及大数据处理中更受欢迎,具备高稳定性和安全性。通过优化,PHP 性能可提升,而 Java 在大规模应用中表现更佳。总体而言,PHP 开发效率高但维护性稍差,Java 则更注重代码质量和安全性。
ly~
412 5
|
自然语言处理 IDE 开发工具
通义灵码编程智能体上线,支持Qwen3模型
通义灵码最全使用指南,一键收藏。
127859 31
通义灵码编程智能体上线,支持Qwen3模型
|
SQL 分布式计算 MaxCompute
ODPS开发大全:入门篇(2)
ODPS开发大全:入门篇
625 14
|
存储 NoSQL 分布式数据库
【Flink】Flink分布式快照的原理是什么?
【4月更文挑战第21天】【Flink】Flink分布式快照的原理是什么?
|
开发工具 git
git 恢复单个文件到指定版本
git 恢复单个文件到指定版本
400 0
|
前端开发 Java 测试技术
IDEA 版 API 接口神器来了,一键生成文档,贼香!
IDEA 版 API 接口神器来了,一键生成文档,贼香!
1173 0
|
前端开发 Java C++
【面试题精讲】JVM-打破双亲委派机制-自定义类加载器
【面试题精讲】JVM-打破双亲委派机制-自定义类加载器
|
存储 机器学习/深度学习 缓存
我惊了!!!ThreadLocal 源码存在内存泄露的 Bug!!!
我惊了!!!ThreadLocal 源码存在内存泄露的 Bug!!!
307 0
|
存储 安全 前端开发
深入理解JVM系列教程(11) - 类加载器
深入理解JVM系列教程(11) - 类加载器
141 1