I know that Initialization blocks run when the class is first loaded (a static initialization block) or when an instance is created (an instance initialization block).
class SmallInit {
static int x;
int y;
static { x = 7 ; } // static init block
{ y = 8; } // instance init block
}
But what is the special benefit of this, when we can do it like this:
class SmallInit {
static int x = 7;
int y = 8;
}