java代码块执行顺序_Java笔记 | Java代码块执行顺序测试

最近笔试常常遇到考察Java代码块执行顺序的题目,网上查看博客错漏百出,特地自己测试了一下。

如有错漏,希望路过的大佬指出来,以便我进行更改。

先上代码吧!

public class ClassA {

private static String a = print("A");

static {

System.out.println(a+":A——静态块");

}

{

System.out.println("A——构造块");

}

public ClassA() {

System.out.println("A——默认构造方法");

}

public ClassA(String name) {

System.out.println("A——带参构造方法");

}

public static String print(String className) {

System.out.println(className+"——静态属性");

return className;

}

}

public class ClassB extends ClassA{

private static String b = print("B");

static {

System.out.println(b+":B——静态块");

}

{

System.out.println("B——构造块");

}

public ClassB() {

System.out.println("B——默认构造方法");

}

public ClassB(String name) {

System.out.println("B——带参构造方法");

}

}

public class ClassTest {

public static void main(String[] args) {

System.out.println("start");

ClassB laughter = new ClassB("laughter");

System.out.println("------------------");

ClassB Somnus = new ClassB();

}

}

接下来是测试结果

0077663d433f

总结

结合我查询的资料以及测试结果,可以得知执行顺序如下:

main 函数作为入口,按行依次执行;

静态属性 > 静态方法声明 > 静态块;

动态属性 > 动态方法声明 > 构造块;

构造方法。

补充说明:

创建一个对象时,无论是否带参数,都会先调用它的父类(如果存在父类)的默认构造方法。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值