image.png
    image.png
    image.png
    image.png

    1. package com.atguigu.java1;
    2. import org.junit.Test;
    3. import java.io.FileInputStream;
    4. import java.io.IOException;
    5. import java.util.Properties;
    6. /**
    7. * 了解类的加载器
    8. *
    9. *
    10. * @author Dxkstart
    11. * @create 2021-06-06 21:34
    12. */
    13. public class ClassLoaderTest {
    14. @Test
    15. public void test1(){
    16. //对于自定义类,使用系统类加载器进行加载
    17. ClassLoader classLoader = ClassLoaderTest.class.getClassLoader();
    18. System.out.println(classLoader);//系统类加载器
    19. //调用系统类加载器的getParent():获取扩展类加载器
    20. ClassLoader classLoader1 = classLoader.getParent();
    21. System.out.println(classLoader1);//扩展类加载器
    22. //调用扩展类加载器的getParent():无法获取引导类加载器
    23. //引导类加载器主要负责加载java的核心类库,无法加载自定义类的。
    24. ClassLoader classLoader2 = classLoader1.getParent();
    25. System.out.println(classLoader2);//没有办法直接获取到,null
    26. ClassLoader classLoader3 = String.class.getClassLoader();
    27. System.out.println(classLoader3);//null,说明String是由引导类加载器加载的
    28. }
    29. /*
    30. Properties:用来读取配置文件。
    31. */
    32. @Test
    33. public void test2() throws IOException {
    34. Properties pros = new Properties();
    35. //此时的文件默认在当前的module下。
    36. //读取配置文件的方式一:
    37. FileInputStream fis = new FileInputStream("src\\jdbc1.properties");
    38. pros.load(fis);
    39. //读取配置文件的方式二:使用ClassLoader
    40. //配置文件默认识别为:当前module的src下
    41. // ClassLoader classLoader = ClassLoaderTest.class.getClassLoader();
    42. // InputStream is = classLoader.getResourceAsStream("jdbc1.properties");
    43. // pros.load(is);
    44. String user = pros.getProperty("user");
    45. String password = pros.getProperty("password");
    46. System.out.println(user);
    47. System.out.println(password);
    48. }
    49. }