在例题中,当再次创建对象 hello2 时并未执行静态初始化块,我想知道这仅仅是创建对象,并未调用啊,为什么普通初始化块和构造方法还要在执行呢、?
创建一个对象的过程就包括了调用构造方法
HelloWorld hello2 = new HelloWorld();
hello2是一个对象引用,是使用new操作符构建的一个HelloWorld对象
类名HelloWorld后面是构造函数的参数列表,显然上面的构造函数参数为空
初始化块是在创建对象时对属性初始化(有的话就调用),构造方法是创建对象后对属性初始化(规定,必须调用)
到这里就明白执行顺序是什么了吧
当然是先执行静态代码块,接着执行构造方法
Hello h = new Hello()
new Hello()就是在调用 无参构造器 类被加载的时候 静态代码块就会被执行