I have read question Classloaders hierarchy in Java 9 and also Java 9 migration guide (paragraph about Class Loader(CL) changes), but still did not get the clear difference between Extension CL
and Platform CL
. So I would kindly ask to avoid marking the question as a duplicate.
Regarding Extension CL
it is clear, that due to a CL visibility principle it allows to see all the classes loaded by parent Bootstrap CL
.
Since Java 9 Extension CL
has been replaced with Platform CL
. And there are two substantial diffs:
Platform CL
is not an instance ofURLClassLoader
All classes in the Java SE Platform are guaranteed to be visible through the platform class loader. In addition, the classes in modules that are standardized under the Java Community Process but not part of the Java SE Platform are guaranteed to be visible through the platform class loader.
I am confused by the 2nd point. What does it mean "the classes in modules that are standardized under the Java Community Process but not part of the Java SE Platform"?