static代码块什么时候被执行?

首先看下面的例子,定义一个类,里面包含静态变量、静态方法、静态代码块,如下: 

public class Helper {
    public static String HELP = "help";
    public static void  initHelper(){
        System.out.println("helper init.....");
    }

    static {
        System.out.println("static started.....");
    }
}

1、调用静态变量运行结果如下:也就是说调用静态变量时,静态代码块会执行。static代码块什么时候被执行?_第1张图片

2、调用静态方法运行结果如下:也就是说调用静态方法时,静态代码块会执行,而且多次调用,静态代码块只会执行一次。

static代码块什么时候被执行?_第2张图片

3、创建类测试如下:也就是说创建类的时候,静态代码块也会执行。

static代码块什么时候被执行?_第3张图片

由上面的例子可以总结出来:

静态代码块在类记载的时候执行,而且只执行一次。一般用来对类初始化数据的定义。

具体如下:

1、调用类静态变量会执行静态代码块

2、调用静态方法时静态代码块会执行

3、创建对象时,静态代码块会执行

你可能感兴趣的:(java,开发语言,后端)