when static variables are initialized in Java
<p>static variables are initialized to default values.
I am wondering when that happens?
when a class is loaded, static vars are created(allocated space),
then static initializers and initializations in declarations are executed.
At what point, the default values are given?
This leads to the problem of forward reference.</p>

<p>I am totally confused over this topic of static field variables.
Also please if you can explain this in reference to the question asked on <a href="http://stackoverflow.com/questions/2547713/why-static-fields-are-not-initialized-in-time">Why static fields are not initialized in time?</a> and especially the answer given by Kevin Brock on the same site. I can't understand the 3rd point.</p>
