A static initializer declared in a class is executed when the class is initialized (§12.4.2). Together with any field initializers for class variables (§8.3.2), static initializers may be used to initialize the class variables of the class.
It is a compile-time error if a static initializer cannot complete normally (§14.21).
It is a compile-time error if a
return statement (§14.17) appears anywhere within a static initializer.
It is a compile-time error if the keyword
this (§15.8.3) or the keyword
super (§15.11, §15.12) or any type variable declared outside the static initializer, appears anywhere within a static initializer.
Use of class variables whose declarations appear textually ...