Foo.classはFooクラスを初期化しない
via http://d.hatena.ne.jp/masanobuimai/20060623#1151057401
ためしてみた。
C:\tmp>type Main.java class Foo { static { System.out.println("static is called"); } } class Main { public static void main(String[] args) throws Exception { System.out.println("(1) ----"); System.out.println("Foo.class = " + Foo.class); System.out.println("(2) ----"); System.out.println("Class.forName(\"Foo\") = " + Class.forName("Foo")); } } C:\tmp>javac -version Main.java javac 1.5.0_06 C:\tmp>java Main (1) ---- Foo.class = class Foo (2) ---- static is called Class.forName("Foo") = class Foo