title: What is the alternative to a static initialization block?
body: <p>My projects had some developer who loved a static initialization block. What is the <strong><em>alternative</em></strong> to this? What is the <strong><em>downside of this alternative</em></strong>?</p>
  
  <pre><code>public class BlockTest {
      String test = new String();
  
      static{
          test = "test string";
      }
  }
  </code></pre>
  
  <p>As far as I understood the <em>static initialization block</em> is used to set values of static field if it cannot be done in one line. But I do not understand why we need a special block for that. This leads to less readability and some confusion.</p>