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