static代码块优先于构造函数

 1     public static class TestA{
 2         TestA(){
 3             System.out.println("TestA构造函数");
 4         }
 5         static
 6         {
 7             System.out.println("TestA静态代码块");
 8         }
 9     }
10     public static class TestB{
11         private TestA Ta= new TestA();
12         
13         {
14             System.out.println("初始化代码块");
15         }
16         public TestB() {
17             System.out.println("TestB构造函数");
18         }
19         static
20         {
21             System.out.println("TestB静态代码块");
22         }
23     }
24     public static class TestC{
25         private static TestB tb1 = new TestB();
26         static
27         {
28             System.out.println("TestC静态代码块");
29         }
30 
31     }

调用

public static void main(String[] args) {
    TestC tcc = new TestC();
}

执行结果:

TestB静态代码块
TestA静态代码块
TestA构造函数
初始化代码块
TestB构造函数
TestC静态代码块

 

PS:先初始化属性然后才是静态初始块,然后是初始块,然后是构造方法

转载于:https://www.cnblogs.com/OSKnown/p/8676588.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值