java中的自由块分为两种:
静态块和非静态块
静态块:
1 public class Test {
2 static int x = 10;
3 //静态块:静态块的执行时机是在class文件装载的时候;静态块只会执行一次
4 //多个静态块的时候,按出现顺序执行
5 static{
6 x+=5;
7 }
8 }
非静态块:
1 public class Test {
2 //非静态块:每次初始化一个对象,都会导致一次非静态块的执行;在构造函数执行之前执行
3 //继承关系:父类的非静态块->父类的构造函数->自己的自由块->自己的构造函数
4 {
5 System.out.println("before");
6 }
7 }
测试demo:
1 public class Test {
2
3 static int x = 10;
4 //静态块:静态块的执行时机是在class文件装载的时候;静态块只会执行一次
5 //多个静态块的时候,按出现顺序执行
6 static{
7 x+=5;
8 }
9 public static void main(String[] args) {
10 new Test();
11 System.out.println(x);
12 }
13 //静态块
14 static {
15 x/=3;
16 }
17 public Test(){
18 System.out.println("构造函数");
19 }
20 //非静态块:每次初始化一个对象,都会导致一次非静态块的执行;在构造函数执行之前执行
21 //继承关系:父类的非静态块->父类的构造函数->自己的自由块->自己的构造函数
22 {
23 System.out.println("before");
24 }
25 }
控制台输出:
before
构造函数
5
更多信息:java自由块
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有