您的位置:首页 > 编程语言 > Java开发

java静态块的执行顺序

2016-03-05 15:28 483 查看
以本文代码为例。

类开始加载时,按照顺序执行:

1.定义count1的类型

2.实例化Test:执行代码块,执行构造方法。  此时count1=2,count2=2

3.定义count2的类型。  此时count1=2,count2=0

4.执行静态代码块。静态代码块只有类首次加载进内存时调用一次,只此一次。  此时count1=3,count2=1

5.进入main函数。又一次实例化Test,即执行代码块,再执行构造方法。  此时count1=5,count2=3

代码如下:

public class Test {

public static int count1;

public static Test test=new Test();

public static int count2=0;

public Test(){

count1++;

count2++;

System.out.println("调用了构造方法");

}

{

count1++;

count2++;

System.out.println("调用了代码块");

}

static{

count1++;

count2++;

System.out.println("调用了静态代码块");

}

public static void main(String[] args){

System.out.println("实例化");

new Test();

System.out.println("count1="+Test.count1);

System.out.println("count2="+Test.count2);

}
}

输出结果:

调用了代码块

调用了构造方法

调用了静态代码块

实例化

调用了代码块

调用了构造方法

count1=5

count2=3
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java 静态块