title: Is Java class initialized by the thread which use it for the first time?
body: <p>Lets assume following classes definition:</p>
  
  <pre><code>public class A {
      public final static String SOME_VALUE;
  
      static {
          SOME_VALUE = "some.value";
      }
  }
  
  public class B {
      private final String value = A.SOME_VALUE;
  }
  </code></pre>
  
  <p>Assuming that the class A hasn't been loaded yet, what does happen when object of the class B is instantiated by some thread T? The class A has to be loaded and instantiated first. But my question is: if it's done in context of the thread T, or rather in context of some other (special) "classloader" thread?</p>