title: Are static methods always loaded into memory?
body: <p>Say that I have a Java project with some "Utils" classes, and that those classes have only <code>static</code> methods and members. </p>
  
  <p>Once I run my application, are those methods and members automatically loaded into memory? Or that only happens once I call the class along the code?</p>
  
  <p><strong>EDIT:</strong> Some sample code to illustrate my question.</p>
  
  <p><strong>RandomUtils.java</strong></p>
  
  <pre><code>public class RandomUtils {
  
      private static Random rand = new Random();
  
      public static int randInt(int min, int max) {
          // nextInt is normally exclusive of the top value,
          // so add 1 to make it inclusive
          return rand.nextInt((max - min) + 1) + min;
      }
  }
  </code></pre>
  
  <p><strong>MainClass.java</strong></p>
  
  <pre><code>public class MainClass {
          public static void main(String[] args) {
              // Some other operations. Is my class already loaded here?
  
              int randomNumber = RandomUtils.randInt(1,10); // Or is it only loaded here?
          }
  }
  </code></pre>
  
  <p>And what if that class have other static members and methods, and if it loads only once I call one of them, the other methods are loaded as well?</p>