The use of Java object initialization order

  • 2020-04-01 01:42:52
  • OfStack

Single class :(static member variable & static initialization block)< (member variable & initialization block)< The constructor


public class  Object initialization order  {
    public static void main(String[] args){
        Person p = new Person();
    }
}
class Person{
    public static String staticfield =" Static member variable ";
    public String field =" Member variables ";
    static
    {
        System.out.println(staticfield);
        System.out.println(" Static initialization block ");
    }
    {
        System.out.println(field);
        System.out.println(" The initialization block ");
    }
    Person(){ 
        System.out.println(" The constructor ");
    }

}

The output

Static member variable
Static initialization block
Member variables
The initialization block
The constructor
Inherited classes :(parent class static member variable & parent class static initialization block) < Subclass static member variable & subclass static initialization block Superclass variable & superclass initialization block (parent constructor & subclass variable) < (subclass initializer block & subclass constructor)

The parenthesis is determined according to the order of occurrence.


Related articles: