title: Java : in what order are static final fields initialized?
body: <p>Okay, so say I have a class that looks like this :</p>
  
  <pre><code>public class SignupServlet extends HttpServlet {
      private static final Logger SERVLET_LOGGER=COMPANYLog.open(SignupServlet.class);
      private static final ExceptionMessageHandler handler = new ExceptionMessageHandler();   
      private static final SignupServletObservableAgent signupObservableAgent = 
          new SignupServletObservableAgent(null, SERVLET_LOGGER);
  }
  </code></pre>
  
  <p>Can I count on the class loader to initialize those fields in order, such that I can rely on SERVLET_LOGGER to be instantiated before signupObservableAgent?</p>