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

静态代码块、构造代码块以及构造函数执行顺序实验

2016-05-20 15:32 405 查看
第一个例子:

public class StaticDemo {
{
System.out.println("{} 代码块");
}
static{
System.out.println("static 代码块");
}
public static void main(String[] args) {

}
}
结果:

static 代码块


结论:

类的加载会执行static代码块,不会执行{}代码块。

第二个例子:

public class StaticDemo2 {

{
System.out.println("{} 代码块");
}

static{
System.out.println("static 代码块");
}

public static void main(String[] args) {
new StaticDemo2();
}

}
结果:

static 代码块
{} 代码块



 结论:

 new一个类的实例,会先执行static代码块,再执行{}代码块。

第三个例子:

<span style="font-size:14px;">public class StaticDemo3 {
public StaticDemo3(){
System.out.println("构造函数");
}

{
System.out.println("{} 代码块");
}
static{
System.out.println("static 代码块");
}

public static void main(String[] args) {
new StaticDemo3();
}

}</span>
结果:


static 代码块
{} 代码块
构造函数



结论:

new一个类的实例,会先执行static代码块,再执行{}代码块,最后执行构造函数。

第四个例子:

<span style="font-size:14px;">public class StaticDemo4 {

public StaticDemo4(){
System.out.println("构造函数");
}

{
System.out.println("{} 代码块");
}
static{
System.out.println("static 代码块");
}

public static void main(String[] args) {
new StaticDemo4();
new StaticDemo4();
}

}</span>

结果:


static 代码块
{} 代码块
构造函数
{} 代码块
构造函数


 总结:

static{}代码块,会在类初次被加载的时候被执行一次。{}代码块和构造函数一样,每次new一个对象都会被执行。

 

注:当有多个带不同参数的构造函数需要执行相同的初始化代码,可以将这些代码提起出来放在{}代码块中。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java