I Have three classes 

1. StaticHolder.java - Which holds a static variable.
2. StaticInitializer.java -Responsible only for initializing the variable through a static method.
3. Application.java - Retrieves the static variables value through getter method.

I thought initializing a static variable once in JVM will not go until we stop the JVM. So I called ran StaticInitializer once which will do the initialization. And tired to access its value from another class which is not working and returning null. Can anyone explain why. Thanks In Advance.

```
public class StaticHolder {
    private static String hello;

    public static void ini() {
        hello = "Hello World";
    }

    public static String getHello() {
        return hello;
    }

    public static void setHello(String hello) {
        StaticHolder.hello = hello;
    }
}

class StaticInitializer {
    public static void main(String[] args) {
        StaticHolder.ini();
        while (true) {
            Thread.sleep(1000);
        }
    }
}

public class Application {
    public static void main(String[] args) {
        System.out.println(StaticHolder.getHello());
    }
}

```