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.