For historical reasons, the names used for class loaders are a bit strange. The bootloader loads the system classes. By default, the system class loader loads classes from the class path, not system classes. System classes are located in jre / lib (mainly in rt.jar), supported directories, and anywhere added via -Xbootclasspath .
In Sun / Oracle, the JRE rt.jar contains classes with packages starting with java., Javax., Sun., Com.sun., Org.omg, org.w3c, and org.xml.
Invalid code (including configuration) should not be added to system classes. Some package name prefixes may be limited by the security property. Java. the prefix is ββspecially protected for non-technical reasons.
Typically, the class loader will delegate it to the parent element before defining a new class, not allowing any classes from the ancestor loader to be replaced. Java EE recommends (even if Java SE prohibitions), with some class loaders, prefer their own classes, usually using a more modern API or other implementation. This allows you to obscure classes, but only as seen through this bootloader (and its children). All other classes continue to refer to the original.
Tom Hawtin - tackline
source share