举个例子就明白了:
public class Test {
{
System.out.println("aaaaaa");
}
public Test() {
System.out.println("bbb");
}
public Test(String a) {
System.out.println("bbb" + a);
}
{
System.out.println("ccc");
}
public static void main(String[] args) {
new Test();
new Test("xxxxxxx");
}
}
运行这段代码,它的输出如下:
aaaaaa
ccc
bbb
aaaaaa
ccc
bbbxxxxxxx
构造方法中的代码,只在调用该方法时运行,而构造代码块在你调用任何一个构造方法时都会运行。
如果你的多个构造方法有共同的逻辑,可以重构到构造代码块中。