Java的Classloader有继承关系,子加载器加载类的时候,会先调用父加载器去加载。如果父加载器可以加载则加载,不可以加载则自己加载。
Java的classLoader有如下关系:
1. BootStrap ClassLoader
2. Extension ClassLoader
3. AppClassLoader
4. Custom ClassLoader
1:最父级的类加载器,加载 \jre\lib\rt.jar 或者 Xbootclasspath指定的jar
2 加载lib\ext\*.jar 或Djava.ext.dirs指定的jar
3 加载CLASSPATH或者Djava.class.path指定的jar
4 自己写的类加载器
。所有的类加载器都有自己的加载路径,所以上级类加载器不是哪个类都可以加载的。我们在windows环境变量配置中配置
的classpath下的jar不一定会被加载,如果是自己在eclipse中加的lib,启动的时候,eclipse 会默认java -cp xx\xx\xx.jar去加载,
。java会为每一个jar和每一个文件夹路径都新建一个classloader(URLClassLoader).
还有一个URLClassLoader是作为AppClassLoader和ExtClassLoader的父类,这个类主要是提供文件读取的作用让他们使用。
本文介绍了Java的类加载机制,详细解析了BootstrapClassLoader、ExtensionClassLoader、AppClassLoader及CustomClassLoader的工作原理和加载路径。此外还提到了URLClassLoader的角色及其作用。
33万+

被折叠的 条评论
为什么被折叠?



