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开始加入的"模块化开发"**的天然的扩展能力所取代。

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

相关推荐
南宫生12 分钟前
力扣每日一题【算法学习day.133】
java·学习·算法·leetcode
獨枭14 分钟前
如何在 Mac 上安装并配置 JDK 环境变量
java·macos·jdk
m0_7383556927 分钟前
java泛型
java·开发语言
web2u30 分钟前
Docker入门及基本概念
java·运维·服务器·spring·docker·容器
qq_2187533141 分钟前
常用Git命令
java·git
计算机小白一个1 小时前
蓝桥杯 Java B 组之背包问题(01背包、完全背包)
java·职场和发展·蓝桥杯
计算机毕设定制辅导-无忧学长1 小时前
Maven 基础环境搭建与配置(二)
java·maven
逸狼1 小时前
【JavaEE进阶】Spring IoC
java·spring·java-ee
C#Thread1 小时前
C#上位机--进程和线程的区别
java·开发语言
三天不学习2 小时前
Redis面试宝典【刷题系列】
数据库·redis·面试