分析下列代码的执行顺序
代码执行顺序
我们先分析下SubClass和SuperClass,SuperClass是SubClass的父类,我们知道,在子类的构造器初始化的时候,默认在第一行会有一个super()去调用父类的构造器
代码执行顺序
所以我们分析,这两个构造器的执行顺序应该是
父类>子类
也就是
superclass构造器>2

我们再来分析App类
代码执行顺序
我们发现App这个类是依赖于SubClass这个类的
就是,如果没有了SubClass这个类,连编译时期都无法通过,所以在这两个类之间应该先加载SubClass这个类,我们又知道static是一开始加载金虚拟机的,所以应该先打印1

1>superclass构造器>2

非static修饰的字段都是有现在构造其中实行的
所以我们看到的这样代码
代码执行顺序
其实相当于
代码执行顺序
代码执行顺序
所以下一个输出的应该是4
1>superclass构造器>2>4
然后再回到App类,之前说过,static是一开始就加载进虚拟机的,故下一个输出的为3,最后才会执行main方法中的system语句
故,正确的顺序应该为
1>superclass构造器>2>4>3>hello
我们来验证一下
代码执行顺序

相关文章:

  • 2021-09-27
  • 2020-12-20
  • 2019-11-13
  • 2019-09-12
  • 2021-09-14
  • 2021-12-22
  • 2021-08-01
  • 2018-02-27
猜你喜欢
  • 2021-12-10
  • 2021-07-31
  • 2021-11-03
  • 2021-11-30
  • 2021-11-05
  • 2021-09-25
  • 2021-10-01
相关资源
相似解决方案