动静态代码块
-
特点
- 静态
- 随着类的加载而执行,而且只执行一次
- 非静态
- 每次调用类都要加载
- 静态
-
代码实例
-
父类
public class Father { static { System.out.println("父类的静态代码块"); } { System.out.println("父类的非静态代码块1"); } Father () { System.out.println("父类的构造函数"); } { System.out.println("父类的非静态代码块2"); } public static void main(String[] args) { System.out.println("父类的main方法"); new Son(); } }
-
子类
public class Son extends Father{ static { System.out.println("子类的静态代码块"); } Son () { System.out.println("子类的构造函数"); } { System.out.println("子类的非静态代码块"); } public static void main(String[] args) { System.out.println("子类的main方法"); new Son(); new Son(); } }
-
下图分别为父类main和子类main方法的执行结果
-
static代码块多用于项目的资源加载