bootstrap 类加载器和扩展类加载器的职责可以合并吗?

Can responsibilities of bootstrap classloader and extension classloader be combined?

我想知道java中上述类加载器的职责是否可以合并? (不是 user/programmer 而是 JVM 开发人员)
Bootstrap 加载器从 jdk/jre/lib/* 加载 类 ,扩展加载器从 jdk/jre/lib/ext/* 加载,所以将它们组合起来有什么问题?
通过这样做,也可以节省一级委派。不是吗?

我知道它们之间的唯一区别是 bootstrap 类加载器是用本地语言实现的,而扩展类加载器是用 java 本身实现的
如果有必要将它们分叉,请说明原因。

是的,JVM 无法从 bootstrap class 加载器加载 lib/ext classes 没有技术原因。可能会有一些小的安全隐患(class 由 bootstrap class 加载器加载的 es 被赋予额外的权限)和向后兼容性影响(一些高级应用程序假定额外的 class 加载器存在),但考虑到您需要修改 JRE 安装,我认为这些问题有点小。

Java9的Modular 运行-Time Images (JEP 220) feature提议去掉扩展机制,但是他们提议保留扩展class loader在向后兼容的层次结构中。删除扩展机制是否会对实际应用程序造成太多问题,或者扩展 class 加载程序是否会在后续版本中保留或删除,还有待观察。