The static block is executed whenever your class loads. The empty block is executed whenever you instantiate your class. Try comparing these:
1.
public static void main(String[] args) {
Test t = new Test();
}
2.
public static void main(String[] args) {
}
Outputs:
1.
Static block
Empty block
2.
Static block
In Layman words, static block only gets called once, no matter how many objects of that type you create.