类加载器
1 启动类加载器(BootStrapClassLoader)
没有实体,
将c++写的一段逻辑定义为启动类加载器
加载路径
启动类加载器加载路径为:
JAVA_HOME\jre\lib*.jar;
JAVA_HOME\jre\class*;
查看启动类加载器加载路径:
#系统属性
System.getProperty("sun.boot.class.path");
#api
Launcher.getBootstrapClassPath().getURLs();
设置启动类加载器加载路径
-Xbootclasspath指定
-Dsun.boot.class.path指定
2 扩展类加载器(ExtCLassLoader)
父类加载器为启动类加载器
启动路径
扩展类加载器的加载路径为:
JAVA_HOME\lib\ext*.jar
查看扩展类加载器加载路径:
#系统属性
System.getProperty("java.ext.dirs")
#api
URLClassLoader classLoader=(URLClassLoader)ClassLoader.getSystemClassLoader().getParent();
classLoader.getURLs();
设置扩展类加载器加载路劲:
-Djava.ext.dirs指定
3 应用类加载器(AppClassLoader)
父类加载器为扩展类加载器
默认加载用户程序类的加载器
加载路径
查看应用类加载器加载路径:
#系统属性
System.getProperty("java.class.path")
#api
URLClassLoader classLoader=(URLClassLoader)ClassLoader.getSystemClassLoader();
classLoader.getURLs();
设置应用类加载器加载路径:
-Djava.class.path指定
**
4 自定义类加载器
用途
打破双亲委派
class文件的加密解密