Java中普通代码块,构造代码块,静态代码块区别和优先级

来源:互联网 发布:韩顺平java spring视频 编辑:程序博客网 时间:2024/05/17 03:51

执行优先级:静态代码块 > main方法 > 构造代码块 > 构造方法
废话不多说,我们来介绍一下大家不经常接触到的静态代码块和构造代码块。

1. 静态代码块

随着类的加载而执行,只执行一次,并优先于主函数执行,是对类初始化的。

public class Test {    //静态代码块    static {        System.out.println("test static block");    }}

2. 构造代码块

构造代码块中定义的是不同对象共性的初始化内容。
给所有对象进行初始化,对象一建立就运行,而且优先于构造方法执行。

  • 和构造方法的区别

构造代码块是给所有对象进行统一初始化,而构造函数是给对应的对象初始化。

public class Test {    //构造代码块    {        System.out.println("test construct block");    }}

3. 执行优先级实例

看起来比较绕,集中注意力进行分析。

class Test1{    {        System.out.println("test1 cons block");    }    static {        System.out.println("test1 static");    }    public Test1() {        System.out.println("test1 cons");    }    public void demo(){        System.out.println("test1 demo...");    }}public class Test {    {        System.out.println("test cons block");    }    static {        System.out.println("test static");    }    public Test() {        System.out.println("test cons func");    }    public void demo(){        System.out.println("test demo...");    }    public static void main(String []args){        System.out.println("start");        new Test1().demo();        new Test().demo();    }}

执行结果:

test static
start
test1 static
test1 cons block
test1 cons
test1 demo…
test cons block
test cons func
test demo…

整理完这块内容以后,我发现之前应该是看过相关的内容,但是时间长了不用不看就忘却了,以后还是得经常回顾这种基础内容。至此我们就可以愉快地使用构造代码块和静态代码块执行我们的任务了。

0 0
原创粉丝点击