What is this?
public class ABC {
public ABC() {
System.out.println(\"world\");
}
static {
System.out.println(\"hello\");
}
}
I think it's worth noting the static block will be run exactly once each time a classloader loads a class. This means if you have more than one classloader, the block can execute more than once.
It's called a "static initialisation block".
It runs when the class is first loaded; only once.
For example, a constructor will run each time the class is instantiated; the static block only runs once, when it's first loaded statically by the VM/Class loader.