# 静态代码块 static { 若干代码,随便写点啥吧。。。。 } # 非静态代码块 { 若干代码,随便写点啥吧。。。。 }
共同特点是
- 方法名、作用域、返回值、参数一概没有。
不同特点:
- 静态代码块是在类被加载的时候(即初始化)去执行,且只执行一次
- 非静态代码块是在类被实例化的时候执行。每被实例化一次,就会被执行一次。
- 在无继承的情况下:执行顺序为:静态代码块 ——> 非静态代码块 ——> 构造函数
- 在有继承的情况下:执行顺序为:父类,子类静态方法 ——> 父类非静态代码块、构造函数 ——> 子类非静态代码块、构造函数