Java difference between static and final static variable initialization
<pre><code>public class StaticTest {

    private static StaticTest stObj=new StaticTest();
    private static int VAR1=10;
    private static final int VAR2=20;

    public StaticTest() {

        System.out.println("Var1 : "+VAR1);
        System.out.println("Var2 : "+VAR2);
    }

    public static void main(String[] args) {
        System.out.println("VAR1 after constrution : "+StaticTest.VAR1);
    }

}
</code></pre>

<p>Output : </p>

<p>Var1 : 0
Var2 : 20
VAR1 after constrution : 10</p>

<p>Why is this different behavior for VAR1 and VAR2 ?</p>
