This class does not initialize itself in the usual way, so it calls on the help of background thread.
From my understanding ,surely the program must print true ?
But If you ran the program, you found that it prints nothing; it just hangs.
public class Test {
 private static boolean isInitialized = false;
  static {
    Thread t = new Thread(new Runnable() {
        public void run() {
            isInitialized = true;
        }
    });
    t.start();
    try {
        t.join();
    } catch (InterruptedException e) {
    }
}
public static void main(String[] args) {
    System.out.println(isInitialized);
}
}
Can some one please explain why this is happening.
 
     
    