package com.atguigu.java1;
import org.junit.Test;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.Properties;
/**
* 了解类的加载器
*
*
* @author Dxkstart
* @create 2021-06-06 21:34
*/
public class ClassLoaderTest {
@Test
public void test1(){
//对于自定义类,使用系统类加载器进行加载
ClassLoader classLoader = ClassLoaderTest.class.getClassLoader();
System.out.println(classLoader);//系统类加载器
//调用系统类加载器的getParent():获取扩展类加载器
ClassLoader classLoader1 = classLoader.getParent();
System.out.println(classLoader1);//扩展类加载器
//调用扩展类加载器的getParent():无法获取引导类加载器
//引导类加载器主要负责加载java的核心类库,无法加载自定义类的。
ClassLoader classLoader2 = classLoader1.getParent();
System.out.println(classLoader2);//没有办法直接获取到,null
ClassLoader classLoader3 = String.class.getClassLoader();
System.out.println(classLoader3);//null,说明String是由引导类加载器加载的
}
/*
Properties:用来读取配置文件。
*/
@Test
public void test2() throws IOException {
Properties pros = new Properties();
//此时的文件默认在当前的module下。
//读取配置文件的方式一:
FileInputStream fis = new FileInputStream("src\\jdbc1.properties");
pros.load(fis);
//读取配置文件的方式二:使用ClassLoader
//配置文件默认识别为:当前module的src下
// ClassLoader classLoader = ClassLoaderTest.class.getClassLoader();
// InputStream is = classLoader.getResourceAsStream("jdbc1.properties");
// pros.load(is);
String user = pros.getProperty("user");
String password = pros.getProperty("password");
System.out.println(user);
System.out.println(password);
}
}