课程
/后端开发
/Java
/Java入门第二季 升级版
是因为构建了对象hello2吗,可是为什么构建了新对象就会再次执行呢
2019-01-15
源自:Java入门第二季 升级版 8-10
正在回答
在创建完一次对象后程序执行时最先但只执行一次静态初始化,然后执行普通初始化块最后执行构造方法,然后再开始往下运行与该对象有关的命令,hello对象后输出了三条命令,hello2对象后面则没有命令了,故会在第二次再输出一次方法。
qq_单曲循环_ijxzB8
https://www.imooc.com/qadetail/288303
我看到了这个答案,盆友可以参考一下
我用eclipse试了一下,确实会执行,虽然我也不懂这是为什么,创建了对象hello2,但是对象并没有被使用,为什么会执行呢?如果有人已经知道答案了可以告诉我一下这是为什么吗?谢谢啦
感觉也是,又没问你们为什么静态代码块没执行。
我的理解是,创建类的对象就是执行代码块的过程,
代码块已经建立输出短语,输出顺序是优先级的问题
创建类的新的对象,还是执行同一类的代码块,只不过静态变量已经排除(只在类加载执行一次)
全都答非所问,厉害了
因为构建对象,需要对对象进行初始化,就回去调用构造函数,也就是这里的构造方法和初始化块,然后又因为静态初始化只执行一次,所以hello2初始化的时候就只有2句。
通过输出结果,我们可以看到,程序运行时静态初始化块最先被执行,然后执行普通初始化块,最后才执行构造方法。由于静态初始化块只在类加载时执行一次,所以当再次创建对象 hello2 时并未执行静态初始化块。
lucky高
举报
课程升级!以终为始告别枯燥,在开发和重构中体会Java面向对象编程的奥妙
5 回答初始化块和构造方法
1 回答静态初始化块,初始化块,构造方法
3 回答为什么通过初始化块变量和构造方法变量输出了两次
2 回答关于构造方法和初始化块
1 回答初始化块和构造方法的区别