在静态初始化块中创建同类的一个对象后,静态初始化块、普通块、构造方法是按什么顺序执行的?

来源:8-10 Java 中的 static 使用之静态初始化块

慕粉3434242

2016-06-03 16:21

搞的好迷糊~~~

写回答 关注

4回答

  • 慕先生2021678
    2016-06-03 18:54:17

    静态代码块:用于给类初始化,类加载时就会被加载执行,只加载一次。
    构造代码块:用于给对象初始化的。只要建立对象该部分就会被执行,且优先于构造函数。
    构造函数:  给对应对象初始化的,建立对象时,选择相应的构造函数初始化对象。
    创建对象时,三者被加载执行顺序:静态代码块--->构造代码块--->构造函数

  • 慕粉3354683
    2016-06-03 17:27:51

    在一个主方法中,程序运行时静态初始化块最先被执行,然后执行普通初始化块,最后才执行构造方法。

  • siworae3455733
    2016-06-03 16:27:28

    静态初始化块 > 普通块 > 构造方法

    主方法所在的类中定义的静态初始化块为第一顺序执行,但是不管多少对象产生,这个静态代码块只执行一次

    慕粉3434...

    static { initialise ccc = new initialise(); System.out.println(ccc.i) ; }在里面加上initialise ccc = new initialise();它们之间的执行顺序会变吧?

    2016-06-03 16:42:20

    共 1 条回复 >

  • qq_黄岩_1
    2016-06-03 16:24:30

    构造方法/静态初始化块/普通块

    慕粉3434...

    我测试的在静态块中先建一个对象 然后输出一下,第一个执行的是普通块,第二个是构造,第三个是静态块,第四个是main方法里的

    2016-06-03 16:33:08

    共 1 条回复 >

Java入门第二季 升级版

课程升级!以终为始告别枯燥,在开发和重构中体会Java面向对象编程的奥妙

530649 学习 · 6091 问题

查看课程

相似问题