1.静态代码块:在类加载的时候运行,不能访问普通变量,不能存在任何方法体中;
(2)静态方法:类初始化的时候加载
(3)静态变量:类初始化的时候加载
2.构造代码块:
(1)每次创建对象的时候都会提前调用一次构造代码块
(2)构造代码块不是优先于构造函数执行,而是依托于构造函数
对象的初始化顺序:
首先执行父类静态的内容,父类静态的内容执行完毕后,接着去执行子类的静态的内容,
当子类的静态内容执行完毕之后,再去看父类有没有构造代码块,如果有就执行父类的构造代码块,
父类的构造代码块执行完毕,接着执行父类的构造方法;父类的构造方法执行完毕之后,它接着去看子类有没有构造代码块,
如果有就执行子类的构造代码块。子类的构造代码块执行完毕再去执行子类的构造方法。