ついでに調べてみた

public class Test {
	static{
		System.out.println("static");
	}
	{
		System.out.println("init");
	}
	public Test(){
		System.out.println("constructor");
	}
	
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		System.out.println("== Start ==");
		Test test = new Test();
		Test test2 = new Test();
		System.out.println("== end ==");
	}
}


結果

static
== Start ==
init
constructor
init
constructor
== end ==

class 直下の static{} がclass ロ−ド時に呼ばれるのは知ってたけど
class 直下の {} は知らなかった。
っていうか staticイニシャライザ以外のイニシャライザって
他にもあるのかな?