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

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

相关推荐

  1. JVM机制

    2024-03-10 18:32:02       33 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-10 18:32:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-10 18:32:02       100 阅读
  3. 在Django里面运行非项目文件

    2024-03-10 18:32:02       82 阅读
  4. Python语言-面向对象

    2024-03-10 18:32:02       91 阅读

热门阅读

  1. 解读电影级视频生成模型 MovieFactory

    2024-03-10 18:32:02       44 阅读
  2. 数据分析 - 面经 - 灵狐科技

    2024-03-10 18:32:02       44 阅读
  3. 【数论】莫比乌斯反演巩固1

    2024-03-10 18:32:02       35 阅读
  4. 基于51单片机的秒表系统设计

    2024-03-10 18:32:02       37 阅读
  5. powershell远程拷贝文件到windows 服务器

    2024-03-10 18:32:02       39 阅读
  6. the demo for C# multicast delegate 多播委托

    2024-03-10 18:32:02       38 阅读
  7. 【docker】docker常用命令

    2024-03-10 18:32:02       38 阅读
  8. css元素的隐藏和显示

    2024-03-10 18:32:02       42 阅读
  9. BSD-3-Clause是一种开源软件许可协议

    2024-03-10 18:32:02       42 阅读
  10. Linux删除Mysql

    2024-03-10 18:32:02       42 阅读
  11. js 类数组 转 数组

    2024-03-10 18:32:02       47 阅读
  12. C#泛型:高级静态语言的效率利器

    2024-03-10 18:32:02       38 阅读
  13. pytorch强化学习(2)——重写DQN

    2024-03-10 18:32:02       41 阅读