p10-p17内容

1: 类的初始化

注解和反射_2

 

 

 1 package Reflection;
 2 
 3 import java.sql.Struct;
 4 
 5 /**
 6  * author liulei
 7  * data  5.22
 8  * since 1.8
 9  * version 1.0
10  * Description   类的初始化
11  */
12 public class Test04 {
13     public static void main(String[] args) throws ClassNotFoundException {
14         //1主动引用
15         Son s = new Son();//new 一个实例
16         Class.forName("Reflection.Son");//反射会主动引用
17         //2 不会产生引用
18         System.out.println(Son.b);//子类引用父类的方法
19         Son[] s1 = new Son[5];//通过数组定义类引用
20     }
21 }
22 class Father{
23     static int b = 2;
24     static {
25         System.out.println("父类被加载");
26     }
27 }
28 class Son extends Father{
29     static {
30         System.out.println("子类被加载");
31     }
32     static int m = 100;
33     static final int n = 1;
34 }

2:类加载器的作用

注解和反射_2

 

 

 

 

 注解和反射_2

 

 

注解和反射_2
 1 package Reflection;
 2 
 3 /**
 4  * author liulei
 5  * data  5.22
 6  * since 1.8
 7  * version 1.0
 8  * Description  三种类加载器
 9  */
10 public class Test5 {
11 
12     //双亲委派机制:java.lang.String-->,多重检测,当自己写的类和跟类(rt.jar)相同时,自己写的类无效
13     public static void main(String[] args) throws ClassNotFoundException {
14         ClassLoader systemClassLoader = ClassLoader.getSystemClassLoader();//系统类加载器
15         System.out.println(systemClassLoader);//sun.misc.Launcher$AppClassLoader@18b4aac2
16         ClassLoader parent = systemClassLoader.getParent();//扩展类加载器(是系统类加器的子集或父亲)
17         System.out.println(parent);//sun.misc.Launcher$ExtClassLoader@1b6d3586
18         ClassLoader parent1 = parent.getParent();//跟加载器(扩展类加载器的子集或父亲)
19         System.out.println(parent1);//null,因为不可访问所以为null
20         //测试当前类是那个加载器加载的
21         ClassLoader classLoader = Class.forName("Reflection.Test5").getClassLoader();//sun.misc.Launcher$AppClassLoader@18b4aac2
22         System.out.println(classLoader);
23         //获取jdk内置的类是谁加载的
24         ClassLoader classLoader1 = Class.forName("java.lang.Object").getClassLoader();
25         System.out.println(classLoader1);//null
26         //如何获得系统类加载器可以加载的路径
27         System.out.println(System.getProperty("java.class.path"));
28         /*
29         D:\Eclipse\JDK\jre\lib\charsets.jar;
30         D:\Eclipse\JDK\jre\lib\deploy.jar;
31         D:\Eclipse\JDK\jre\lib\ext\access-bridge-64.jar;
32         D:\Eclipse\JDK\jre\lib\ext\cldrdata.jar;
33         D:\Eclipse\JDK\jre\lib\ext\dnsns.jar;
34         D:\Eclipse\JDK\jre\lib\ext\jaccess.jar;
35         D:\Eclipse\JDK\jre\lib\ext\jfxrt.jar;
36         D:\Eclipse\JDK\jre\lib\ext\localedata.jar;
37         D:\Eclipse\JDK\jre\lib\ext\nashorn.jar;
38         D:\Eclipse\JDK\jre\lib\ext\sunec.jar;
39         D:\Eclipse\JDK\jre\lib\ext\sunjce_provider.jar;
40         D:\Eclipse\JDK\jre\lib\ext\sunmscapi.jar;
41         D:\Eclipse\JDK\jre\lib\ext\sunpkcs11.jar;
42         D:\Eclipse\JDK\jre\lib\ext\zipfs.jar;
43         D:\Eclipse\JDK\jre\lib\javaws.jar;
44         D:\Eclipse\JDK\jre\lib\jce.jar;
45         D:\Eclipse\JDK\jre\lib\jfr.jar;
46         D:\Eclipse\JDK\jre\lib\jfxswt.jar;
47         D:\Eclipse\JDK\jre\lib\jsse.jar;
48         D:\Eclipse\JDK\jre\lib\management-agent.jar;
49         D:\Eclipse\JDK\jre\lib\plugin.jar;
50         D:\Eclipse\JDK\jre\lib\resources.jar;
51         D:\Eclipse\JDK\jre\lib\rt.jar;  //java核心库
52         D:\Code\IDEA\Stage01\Demo03\out\production\Demo03;//自己的目录
53         D:\IDEA\IntelliJ IDEA Community Edition 2020.1.1\lib\idea_rt.jar
54 
55          */
56     }
57 }
View Code

相关文章:

  • 2022-12-23
  • 2021-10-30
  • 2021-07-19
  • 2022-12-23
  • 2022-12-23
  • 2021-07-10
  • 2021-12-21
猜你喜欢
  • 2021-09-22
  • 2022-01-24
  • 2021-04-08
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案