Java:ClassLoader:修订间差异
无编辑摘要 |
无编辑摘要 |
||
第3行: | 第3行: | ||
* <span class="article-label">Extension ClassLoader</span>加载<span class="article-label">$JAVA_HOME/lib/ext</span> 中的类,以及<span class="article-label">java.ext.dirs</span>定义的额外的扩展 | * <span class="article-label">Extension ClassLoader</span>加载<span class="article-label">$JAVA_HOME/lib/ext</span> 中的类,以及<span class="article-label">java.ext.dirs</span>定义的额外的扩展 | ||
* <span class="article-label">Application ClassLoader</span>加载classpath中的类 | * <span class="article-label">Application ClassLoader</span>加载classpath中的类 | ||
每一个<span class="article-label">java.lang.Class</span>都可以通过<syntaxhighlight lang="java" inline>Class#getClassLoader()</syntaxhighlight> 来获取到类到加载器。 | |||
ClassLoader使用双亲委派模型(delegation model)来定位类,实现自定义到ClassLoader的时候,通常应该先看其parent class loader是否能够解析类。 | |||
[[Category:Java]] | [[Category:Java]] |
2021年4月30日 (五) 08:43的最新版本
- Bootstrap ClassLoader最顶级的类加载器,加载$JAVA_HOME/jre/lib下面的类(主要是rt.jar)
- Extension ClassLoader加载$JAVA_HOME/lib/ext 中的类,以及java.ext.dirs定义的额外的扩展
- Application ClassLoader加载classpath中的类
每一个java.lang.Class都可以通过Class#getClassLoader()
来获取到类到加载器。
ClassLoader使用双亲委派模型(delegation model)来定位类,实现自定义到ClassLoader的时候,通常应该先看其parent class loader是否能够解析类。