The JRE (
Java runtime environment) will first load and initialize the class that you specified on the command line. It will then call the public static void main(
String[] args) method in that class.
Classes are loaded only when needed. Whenever the program uses a class for the first time, it's loaded and initialized.
Static methods are called only when the program calls them. The JRE isn't going to call any static methods automatically (besides the main method). If you mean static
initializers (instead of static methods), they are called to initialize the class, immediately after the class is loaded.