Illegal forward Reference java issue
<p>Could anyone explain what is wrong with this code:</p>

<pre><code>    public class Base {


    static {
        i = 1;
        System.out.println("[Base]after static init block i=" + i);// LINE 1
        System.out.println("*************************************");
        System.out.println();
    }
    static int i;



    public static void main(String[] args) {
        System.out.println(Base.i);
    }
}
</code></pre>

<p>If I comment LINE 1 - everything is OK and Base.main method prints "1".
If LINE 1 - is not commented, got compile time error: "illegal forward reference". 
So, as i understand in static init block I can set value for i, but not read. Could anyone explain why?</p>
