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