title: Java difference between static and final static variable initialization
body: <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>