静态代码块和非静态代码块

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/document_hk/article/details/84255384

1.静态代码块和非静态代码块

测试源代码:

package eighth;

import second.test;

public class StaticTest {

public static void main(String[] args) {

System.out.println("分割线=============");

new StaticTest();

System.out.println("分割线=============");

new StaticTest();

}

static {

System.out.println("这个是静态代码块");

}

public StaticTest() {

System.out.println("默认的构造方法");// TODO 自动生成的构造函数存根

}

{

System.out.println("非静态代码块");

}

}

下面是测试结果

这个是静态代码块

分割线=============

非静态代码块

默认的构造方法

分割线=============

非静态代码块

默认的构造方法

从上面的测试结果可以看到,静态代码块的执行次数只有一次,有点类似于静态的变量,在类创建的时候被创建,非静态代码块在创建类的实例的时候被创建,执行在默认的构造方法之前。即无论创建多少个类的实例,静态代码块只在首次执行,后面都没有被执行,后面根据类的实例再执行相应部分的代码块。

猜你喜欢

转载自blog.csdn.net/document_hk/article/details/84255384