java 代码顺序执行_Java:请教这段代码的执行顺序?

1、说明顺序问题:在Java 中,调用构造方法 new 一个对象时,执行顺序为:

a.调用父类的static 部分

b.调用子类(当前类)中的static 部分

c.调用父类的构造方法(初始化子类中继承于父类属性)

d. 调用子类的构造方法。(初始化子类自身独有的属性)

注:static 部分从上至下执行

2、main方法是执行程序的入口,但是只有当前类的static加载完成之后,才执行main方法体内容;

3、解题:执行顺序为:

A、当在Windows下的cmd中敲下 Java App 时,App类被加载进内存。此时,

1:执行 private static App d = new App();

new APP()操作流程:

参照new 对象顺序:此时直接执行调用构造器初始化成员变量 private SubClass t

即 执行 new SubClass();

再次参照 new 对象顺序,此时,先执行 SubClass中的 static 部分即

static { System.out.println("1"); }

接着执行父类构造方法 SuperClass(){System.out.println("构造superClass");}

最后执行子类构造方法 public SubClass(){ System.out.println("2"); }

完成 new SubClass() 流程;

初始化成员变量之后执行构造方法体内容,即: public App() { System.out.println("构造器"); }

到此,完成 new APP()操作;

赋值给 d ;

到此,完成第一个static 加载;

2:执行 static { System.out.println("静态块");}

3:加载完 static 部分后,现在开始执行 main 方法体中的程序,即 {System.out.println("Hello");}

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值