static {
// stuff here
}
runs in <clinit> at class initialization, whereas
{
// read SICP
}
runs in the constructor, with the instance field initializers.
https://docs.oracle.com/javase/specs/jls/se8/html/jls-12.html#jls-12.4.2 step 9
https://docs.oracle.com/javase/specs/jls/se8/html/jls-12.html#jls-12.5 step 4