1.类的加载机制_继承类的加载(一个小的Demo)说明

本文通过一个简单的Demo演示了Java中类的加载顺序,并详细解释了父类与子类、静态代码块、构造函数及匿名内部类之间的加载顺序。

   今天我们先来一个小的Demo来了解类的加载顺序。

 1 public class ClassLoaderTest {
 2     public static void main(String[] args) {
 3         System.out.println("*******************测试类的加载顺序开始*******************");
 4         new SubClass();
 5         System.out.println("*******************测试类的加载顺序结束*******************");
 6         /**
 7          * 测试结果:
 8          * *******************测试类的加载顺序开始*******************
 9         ParentClass 静态代码块....
10         SubClass 静态代码块....
11         ParentClass 匿名内部类....
12         ParentClass 构造函数....
13         SubClass 匿名内部类....
14         SubClass 构造函数....
15          *******************测试类的加载顺序结束*******************
16          */
17     }
18     
19 
20 }
21 
22 
23 
24 class ParentClass{
25     ParentClass(){
26         System.out.println("ParentClass 构造函数....");
27     }
28     
29     static{
30         System.out.println("ParentClass 静态代码块....");
31     }
32     
33     {
34         System.out.println("ParentClass 匿名内部类....");
35     }
36     
37 }
38 
39 class SubClass extends ParentClass{
40     SubClass(){
41         System.out.println("SubClass 构造函数....");
42     }
43     
44     static{
45         System.out.println("SubClass 静态代码块....");
46     }
47     
48     {
49         System.out.println("SubClass 匿名内部类....");
50     }
51     
52 }

 由上测试结果可以得出结论:

9行10行对比说明:父类优先于子类加载,

11,12行对比说明:匿名内部类优先于构造函数

9,10 和11,12,13,14对比:说明静态代码块优先于类存在

总结以上:1.父类优先于子类加载,2.静态变量优先于类存在,3.匿名内部类优先于对象存在

 

转载于:https://www.cnblogs.com/zhangshiwen/p/4801697.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值