1、static代码块也叫静态代码块,作用就是对类进行初始化,而且它随着类的加载而执行,并且只会执行一次。如果是普通代码块每创建一个类时就执行。
2、类什么时候被加载
1)创建对象实例时
2)创建子类对象实例,父类也会被加载
3)使用类的静态成员时(静态属性,静态方法)
3、普通的代码块在创建对象实例时,会被隐式的调用。被创建一次就会调用一次、如果只是使用类的静态成员时,普通代码块并不会执行。
小结:(1)static代码块是类加载时执行,只会执行一次
(2)普通代码块是在创建对象时调用的,创建一次调用一次
4、创建一个对象时,在一个类调用顺序是:
1)调用静态代码块和静态属性初始化(注意:静态代码块和静态属性初始化调用的优先级一样,如果有多个静态代码块和多个静态变量初始化,则按它们的定义顺序调用)
2)调用普通代码块和普通属性的初始化(注意:普通代码块和普通初始化调用的优先级一样,如果有多个普通代码块和多个普通属性初始化,则按定义顺序调用)
3)调用构造方法