Class static initialization blocks are a special feature of a
class that enable more flexible initialization of
static properties than can be achieved using per-field initialization.
Static blocks allow statements to be evaluated during initialization, which allows initializations that (for example) include
try...catch or set multiple fields from a single value.
Initialization is performed in the context of the current class declaration, with privileged access to private state. This means that static blocks can also be used to share information between classes with instance private fields and other classes or functions declared in the same scope (analogous to "friend" classes in C++).