I have following scenario package com.example.test;
public class StaticTest {
public static final String STATIC_VAR="Static Var";
static{
System.out.println("Static Block Called....");
}
public static void init(){}
}
package com.example.test;
public class MainClass {
public static void main(String[] args) {
System.out.println("Test static initialization");
String staticvar =StaticTest.STATIC_VAR;
System.out.println("Referred static variable--> "+ staticvar);
System.out.println("Calling static method");
StaticTest.init();
System.out.println("Static method invoked");
}
}
The output I am getting is
Test static initialization
Referred static variable--> Static Var
Calling static method
**Static Block Called....**
Static method invoked
And output I was expecting was
Test static initialization
**Static Block Called....**
Referred static variable--> Static Var
Calling static method
Static method invoked
I was thinking that as soon as I refer static variable static block will get executed.
any explanation?