匿名构造方法会在所有的构造方法执行前偷偷执行一次。比如一个类有三个构造方法,那么无论你调用哪个构造方法来new这个类的实例,此匿名构造方法都会先于此构造方法执行一次。
public class MyTest {
public static void main(String[] args) {
new MyTest().new Output();
}
class Output{
public Output()
{
System.out.println("in constructor ....");
}
{
System.out.println("in anonymous block of Output....");
}
}
}
输出:
in anonymous block of Output....
in constructor ....
静态代码块的话,是在类加载时指执行一次而已。而匿名构造方法却是在每次创建新实例时都会被调用。