JVM-JDK9之后的类加载器

有的时候博客内容会有变动,首发博客是最新的,其他博客地址可能会未同步,认准https://blog.zysicyj.top

全网最细面试题手册,支持艾宾浩斯记忆法。这是一份最全面、最详细、最高质量的 java 面试题,不建议你死记硬背,只要每天复习一遍,有个大概印象就行了。 https://store.amazingmemo.com/chapterDetail/1685324709017001


| 特性 | JDK 9+类加载器 | JDK 8及以前的类加载器 | | -----|


---|

-----| | 模块系统 | 引入了模块系统(Java Platform Module System) | 没有模块系统 | | 命名空间隔离 | 使用模块系统实现了命名空间隔离,不同模块的类无法直接互相访问 | 没有明确的命名空间隔离,所有类都在同一个全局命名空间中 | | 直接字节码处理 | 引入了JEP 238 (Multi-Release JAR Files)以及JEP 261 (Module System) | 不支持直接字节码处理 | | 默认类加载器变更 | 采用了平台类加载器进行默认加载,将Bootstrap类加载器委派给平台类加载器 | 使用扩展类加载器和应用程序类加载器作为默认加载器 | | 全量类加载器执行顺序变更 | 利用模块系统与类加载器实现了双亲委派的全量类加载器执行顺序变更 | 按照双亲委派模型执行全量类加载器 | | 拓展类加载器与系统类加载器分离 | 拓展类加载器与系统类加载器分离,拓展类加载器只加载JDK本身的扩展模块 | 拓展类加载器与系统类加载器混合在一起 | | 热替换(HotSwap) | 引入了更先进的HotSwap实现,支持在运行时替换代码和重新定义类 | HotSwap功能有限,只能替换某些特定方法的实现 | | 新的类加载器 | 引入了jimage类加载器和AppCDS类加载器 | 没有这些新的类加载器 |

最后更新于