我已经阅读了问题Classloaders hierarchy in Java 9和Java 9迁移指南(关于Class Loader(CL) changes的段落),但是仍然没有得到Extension CL
和Platform CL
之间的明显区别。因此,请避免将问题标记为重复。
关于Extension CL
,很明显,由于CL 可见性原则,它可以查看父Bootstrap CL
加载的所有类。
自从Java 9 Extension CL
被替换为Platform CL
。而且有两个实质性的区别:
Platform CL
不是URLClassLoader
的实例保证Java SE平台中的所有类都可以通过平台类加载器可见。此外,通过平台类加载器,可以保证在Java Community Process下标准化但不是Java SE Platform一部分的模块中的类。
我对第二点感到困惑。
是什么意思?“在Java Community Process下标准化但不是Java SE平台一部分的模块中的类”?