序本文主要研究一下java9的classloaderjava9之前的classloaderbootstrap classloader加载rt.jar,jre/lib/endorsedext classloader加载jre/lib/extapplication classloader加载-cp指定的类java9及之后的classloaderbootstrap classloader加载lib/modulesjava.base java.security.sasljava.datatransfer java.xmljava.desktop jdk.httpserverjava.instrument jdk.internal.vm.cijava.logging jdk.managementjava.management jdk.management.agentjava.management.rmi jdk.naming.rmijava.naming jdk.netjava.prefs jdk.sctpjava.rmi jdk.unsupportedext classloader更名为platform classloader,加载lib/modulesjava.activation* jdk.accessibilityjava.compiler* jdk.charsetsjava.corba* jdk.crypto.cryptokijava.scripting jdk.crypto.ecjava.se jdk.dynalinkjava.se.ee jdk.incubator.httpclientjava.security.jgss jdk.internal.vm.compilerjava.smartcardio jdk.jsobjectjava.sql jdk.localedatajava.sql.rowset jdk.naming.dnsjava.transaction jdk.scripting.nashornjava.xml.bind* jdk.security.authjava.xml.crypto jdk.security.jgssjava.xml.ws* jdk.xml.domjava.xml.ws.annotation* jdk.zipfsapplication classloader加载-cp,-mp指定的类jdk.aot jdk.jdepsjdk.attach jdk.jdijdk.compiler jdk.jdwp.agentjdk.editpad jdk.jlinkjdk.hotspot.agent jdk.jshelljdk.internal.ed jdk.jstatdjdk.internal.jvmstat jdk.packjdk.internal.le jdk.policytooljdk.internal.opt jdk.rmicjdk.jartool jdk.scripting.nashorn.shelljdk.javadoc jdk.xml.bindjdk.jcmd jdk.xml.wsjdk.jconsole小结java9模块化之后,对classloader有所改造,其中一点就是将ext classloader改为platform classloader,另外模块化之后,对应的classloader加载各自对应的模块。docjava9-three-level hierarchy of class loaders