Static block gets executed when the class is loaded into JVM whereas constructor block gets executed when an instance is created.
A static initializer is the equivalent of a constructor in the static context. You will certainly see that more often than an instance initializer.