序
本文主要研究一下java9的classloader
java9之前的classloader
- bootstrap classloader加载rt.jar,jre/lib/endorsed
- ext classloader加载jre/lib/ext
- application classloader加载-cp指定的类
java9及之后的classloader
- bootstrap classloader加载lib/modules
- java.base java.security.sasl
- java.datatransfer java.xml
- java.desktop jdk.httpserver
- java.instrument jdk.internal.vm.ci
- java.logging jdk.management
- java.management jdk.management.agent
- java.management.rmi jdk.naming.rmi
- java.naming jdk.net
- java.prefs jdk.sctp
- java.rmi jdk.unsupported
- ext classloader更名为platform classloader,加载lib/modules
- java.activation* jdk.accessibility
- java.compiler* jdk.charsets
- java.corba* jdk.crypto.cryptoki
- java.scripting jdk.crypto.ec
- java.se jdk.dynalink
- java.se.ee jdk.incubator.httpclient
- java.security.jgss jdk.internal.vm.compiler*
- java.smartcardio jdk.jsobject
- java.sql jdk.localedata
- java.sql.rowset jdk.naming.dns
- java.transaction* jdk.scripting.nashorn
- java.xml.bind* jdk.security.auth
- java.xml.crypto jdk.security.jgss
- java.xml.ws* jdk.xml.dom
- java.xml.ws.annotation* jdk.zipfs
- application classloader加载-cp,-mp指定的类
- jdk.aot jdk.jdeps
- jdk.attach jdk.jdi
- jdk.compiler jdk.jdwp.agent
- jdk.editpad jdk.jlink
- jdk.hotspot.agent jdk.jshell
- jdk.internal.ed jdk.jstatd
- jdk.internal.jvmstat jdk.pack
- jdk.internal.le jdk.policytool
- jdk.internal.opt jdk.rmic
- jdk.jartool jdk.scripting.nashorn.shell
- jdk.javadoc jdk.xml.bind*
- jdk.jcmd jdk.xml.ws*
- jdk.jconsole
小结
java9模块化之后,对classloader有所改造,其中一点就是将ext classloader改为platform classloader,另外模块化之后,对应的classloader加载各自对应的模块。
doc
- java9-three-level hierarchy of class loaders
本文暂时没有评论,来添加一个吧(●'◡'●)