1、类的加载过程
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/49b9dd3367de5e46e036d058a64ff323.png)
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/1ad7afa105f98cd83e25d5e083010541.png)
1.1、案例
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/23ff4c3f2b099c660ef9e396ba002684.png)
2、类的加载器作用
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/24b7e3f452bac70e847f4f6108e2a672.png)
3、了解classLoader
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/c1c4c919a28a5cfc2396d72e0eff1bc7.png)
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/f0c1f490caaf5252d80ac593f556c098.png)
3.1、关于类的引导类加载器的演示
/**
* Description:了解类加载器
* DATE: 2022/6/11 18:37
*/
public class ClassLoaderTest {
@Test
public void test01(){
//对于自定义类,使用系统类加载器进行加载
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);
ClassLoader classLoader3 = String.class.getClassLoader();
System.out.println(classLoader3);
}
}
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/0e624d355be69624edfb33f080867a6e.png)
3.2、类加载器获取properties配置文件值
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/0a2f0c4d470c05ca948b7bc706b5850d.png)
package com.java.project;
import org.junit.Test;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
/**
* Description:了解类加载器
* DATE: 2022/6/11 18:37
*/
public class ClassLoaderTest {
@Test
public void test04() throws IOException {
Properties props = new Properties();
//配置文件默识别为:当前module的src
ClassLoader classLoader = ClassLoaderTest.class.getClassLoader();
InputStream inputStream = classLoader.getResourceAsStream("jdbc3.properties");
props.load(inputStream);
String name2 = props.getProperty("name");
String age2 = props.getProperty("age");
System.out.println("name2="+name2+",age2="+ age2);
}
}
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/d0c4a990a2ac88e591c0115fdcd22a11.png)
3.3、使用InputStream读取properties配置文件值
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/28d8717cd456fec29c56d7e0a3283016.png)
package com.java.project;
import org.junit.Test;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
/**
* Description:了解类加载器
* DATE: 2022/6/11 18:37
*/
public class ClassLoaderTest {
@Test
public void test04() throws IOException {
Properties props = new Properties();
//读取配置文件的方式1:
//此时的读取的配置文件默认在当前的module下。
FileInputStream fileInputStream = new FileInputStream("jdbc.properties");
props.load(fileInputStream);
String name = props.getProperty("name");
String age = props.getProperty("age");
System.out.println("name="+name+",age="+ age);
FileInputStream fileInputStream1 = new FileInputStream("src\\jdbc1.properties");
props.load(fileInputStream1);
String name1 = props.getProperty("name");
String age1 = props.getProperty("age");
System.out.println("name1="+name1+",age1="+ age1);
}
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/4f40914bcedb266bebb931c98d8db99e.png)