您现在的位置是:首页 > 文章详情

LearnJava(四) | Java代码块执行顺序测试

日期:2018-09-10点击:346

最近笔试常常遇到考察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(); } } 

接下来是测试结果

img_a15de8bbe8f5e43ab8481be8c3449e53.png

总结

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

  1. main 函数作为入口,按行依次执行;
  2. 静态属性 > 静态方法声明 > 静态块;
  3. 动态属性 > 动态方法声明 > 构造块;
  4. 构造方法。

补充说明:

  1. 创建一个对象时,无论是否带参数,都会先调用它的父类(如果存在父类)的默认构造方法。
原文链接:https://yq.aliyun.com/articles/662661
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章