Saturday, August 1, 2015

[Java] Instance initialization block

Instance initialization block runs before the constructor each time you instantiate an object.

Example1

public class static1 {
    static1() {
        System.out.print("c ");
    }   
    public static void main(String[] args) {
        new static1();
    }
    {System.out.print("x ");}
}

Result:
x c
Reamrk:
This example show Instance initialization block runs before the constructor.

Example2

public class static1 {
    static1() {
        System.out.print("c ");
    }   
    public static void main(String[] args) {
        new static1();
        new static1();
        new static1();
    }
    {System.out.print("x ");}
    static {System.out.print("y ");}
}
Result:
y x c x c x c
This example show Instance initialization block runs each time when object with that type was created. And static initialization block run once only before Instance initialization block (when the class loader load the class.

What is a static initialization block: [Java] static initialization block

Reference:
http://stackoverflow.com/questions/3987428/what-is-an-initialization-block

No comments :

Post a Comment