When you need to perform a complicated initialization of a ``++static++`` member, it should be done in a ``++static++`` initializer block. That's because such blocks are only executed when the class is loaded into the JVM. That is, they run only once, and that happens before any instances are created. Non-``++static++`` blocks, on the other hand, run once for each instance that's created, so any ``++static++`` members "initialized" in such a block will be re-set for each new instance.