Static blocks in java classes are evil

This is a pet peeve of mine. Developers that place static blocks of code among java classes. While I know that according to the letter of the language this is a completely valid bit of code, I find that it’s usually the result of a developer being lazy. Not looking for the proper place to initialize things. There’s often all sorts of assumptions made in these blocks since there isn’t any error catching being done. Since this bit of code is outside the lifecycle of the application it can have unintended consequences and break things in very funny ways.