java 中的构造代码块和构造函数以及静态代码块

相信大家都学了java之后也被这     java 中的构造代码块   和    构造函数   以及  静态代码块  三个给弄混了,下边我给大家来稍微解释下这三个的区别:

构造函数代码块,是一个用来描述一个类里边的一段代码,这段代码优先于构造函数执行,而且一个对象生成之后就有一次被调用。

构造函数,是类实例化一个对象之后,必须要调用的,当然如果没写,系统会自动生成一个没有任何参数的没有任何代码的构造函数。

静态代码块,是这个类里边的并不依赖于对象而存在的,没有实例化对象,但是如果已经引用了这个类,那么这段代码就会被调用,当然总共职能被调用一次,即使是生成多个同类的对象。

先给大家来看个李子坝:

package outPak1;public class hahah {public hahah() {cout("构造函数被调用!");}public static void coutN(Object o) {System.out.print(o);}public static void cout(Object o) {System.out.println(o);}{cout("构造函数块被调用!");}static {cout("静态函数块被调用!");}public static void main(String[] args) {// TODO Auto-generated method stubnew hahah();new hahah();new hahah();}}
这个代码块运行的结果会是什么?

猜下吧!;

静态函数块被调用!
构造函数块被调用!
构造函数被调用!
构造函数块被调用!
构造函数被调用!
构造函数块被调用!
构造函数被调用!