1类加载器
1.1 作用
负责加载类(把字节码文件加载到内存中需要通过类加载器完成)
1.2类加载时机
用到该类的时候就加载
1.3类的加载过程
1.4类加载器的分类
- Bootstrap class loader:虚拟机的内置类加载器,通常表示为null ,并且没有父null
- Platform class loader:平台类加载器,负责加载JDK中一些特殊的模块
- System class loader:系统类加载器,负责加载用户类路径上所指定的类库
存在逻辑继承关系(不是物理继承)
1.5双亲委派模型
如果一个类加载器收到类加载请求,它不会自己先去加载,而是把这个请求委托给父类去加载,如果父类还存在父类的话 ,就继续向上委托,最终达到顶层的启动类加载器,如果父类加载器可以完成加载任务就成功返回,否则子类才会尝试自己去加载
1.6类加载器的API
获取系统类加载器
//获取类加载器
ClassLoader systemClassLoader = ClassLoader.getSystemClassLoader();
//读取类路径下的配置文件
InputStream inputStream = classLoader.getResourceAsStream("prop.properties");
//创建集合对象,存入字流对象
Properties properties = new Properties() ;
properties.load(inputStream);
// 输出
System.out.println(properties);