1
JavaBeginner#object#fundamentals
Instance initializer blocks run every time an object is created, right before the constructor body, and are useful for shared initialization logic across multiple constructors. Static blocks run once when the class is loaded.
class Demo {
int x;
{ x = 10; System.out.println("instance block"); }
static { System.out.println("static block, runs once"); }
Demo() { System.out.println("constructor"); }
}