the order of execution is: static initializer, instance initializer, constructor
1.Initializing Fields
public class BedAndBreakfast { // initialize to 10 public static int capacity = 10; // initialize to false private boolean full = false; }
2.Static Initialization Blocks
static { // whatever code is needed for initialization goes here }
3.Initializing Instance Members
{ // whatever code is needed for initialization goes here }
4. constructor
5. example
public class t1 { { System.out.println("Empty block"); } static { System.out.println("Static block"); } public t1() { System.out.println("constructor block"); } public static void main(String[] args) { t1 t = new t1(); } }
http://docs.oracle.com/javase/tutorial/java/javaOO/initial.html Initializing Fields
http://www.javatpoint.com/instance-initializer-block Instance initializer block: