JVM类加载机制

上面的类加载过程主要是通过类加载器来实现的,Java里有如下几种类加载器

  • 引导类加载器:负责加载支撑JVM运行的位于JRE的lib目录下的核心类库,比如rt.jar、charsets.jar等
  • 扩展类加载器:负责加载支撑JVM运行的位于JRE的lib目录下的ext扩展目录中的JAR类包
  • 应用程序类加载器:负责加载ClassPath路径下的类包,主要就是加载你自己写的那些类
  • 自定义加载器:负责加载用户自定义路径下的类包

JDK8以后废弃扩展类加载器(Extension ClassLoader)的原因

JDK8以后,使用平台类加载器(Platform ClassLoader)替换了原来的扩展类加载器(Extension ClassLoader)。有两个基本的原因归纳如下:

在JDK8中的这个Extension ClassLoader,主要用于加载jre环境下的lib下的ext下的jar包。当想要扩展Java的功能的时候,把jar包放到这个ext文件夹下。然而这样的做法并不安全,不提倡使用。

这种扩展机制被**JDK9开始加入的"模块化开发"**的天然的扩展能力所取代。

总之,扩展能力被取代了又不安全,所以被废弃。

相关推荐
2401_887724502 分钟前
Pandas 中使用交叉表为分类列生成计数型宽表结构
jvm·数据库·python
阿拉金alakin4 分钟前
深入理解 Java 线程池:核心参数、工作流程与常用创建方式
java·开发语言·java-ee
justjinji5 分钟前
PHP函数如何识别PCI设备厂商ID_PHP获取扩展卡硬件标识【说明】
jvm·数据库·python
2201_761040597 分钟前
怎么监控MongoDB副本集的复制缓冲区积压_复制流速率评估
jvm·数据库·python
2402_854808378 分钟前
Layui tab选项卡如何动态根据ID值进行程序化切换
jvm·数据库·python
m0_377618238 分钟前
mysql如何设置字段为自动递增_使用alter table添加auto increment
jvm·数据库·python
Wyz201210248 分钟前
Navicat导入HTML网页报错怎么跳过_忽略错误记录高级选项
jvm·数据库·python
小江的记录本10 分钟前
【网络安全】《网络安全三大加密算法结构化知识体系》
java·前端·后端·python·安全·spring·web安全
InfinteJustice11 分钟前
CSS Grid布局如何实现响应式卡片网格_结合媒体查询调整列数
jvm·数据库·python
2301_8135995511 分钟前
HTML函数开发用金属机身笔记本散热更好吗_材质对温控影响【指南】
jvm·数据库·python