问答详情
源自:8-10 Java 中的 static 使用之静态初始化块

为什么创建类对象hello2 会再执行一次程序呀 TAT

为什么创建类对象hello2 会再执行一次 main方法上面的 那些语句?  求大家点赞顶一下 ,大神给个回复呀 TAT

提问者:金乘三 2016-07-08 16:57

个回答

  • 葫芦娃3402926
    2016-07-08 17:23:05
    已采纳

    你说的上面那些语句是构造函数、初始化块吗?在新建对象时候,都会调用类的构造函数、初始化块,对刚生成的对象hello2进行初始化的。这和原本你创建过其他对象无关。但是如果是静态的初始化块,只会在类加载时候被执行一次。可以看看JAVA入门第二季中的---Java 中的 static 使用之静态初始化块这一部分内容。

    HelloWorld hello2=new HelloWorld();代码做了以下事情:

    1、右边的“new HelloWorld”,是以HelloWorld类为模板,在堆空间里创建一个HelloWorld类对象(也简称为HelloWorld对象)。 

    2、末尾的()意味着,在对象创建后,立即调用HelloWorld类的构造函数,对刚生成的对象进行初始化。构造函数是肯定有的。如果没创建,Java会补上一个默认的无参构造函数。

    3、左边的“HelloWorld hello2”创建了一个HelloWorld 类引用变量。

    4、“=”操作符使对象引用指向刚创建的那个HelloWorld对象。

  • 雪中_悍刀行
    2016-07-08 17:18:07

    因为再一次对象实例化,来调用上面的语句,故再执行一次。