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

静态代码块、构造代码块与构造函数的区别

2017-07-06 15:32 253 查看
?
输出顺序:

2

3

a =110, b=0

1

4

构造代码块优先构造方法执行

静态块优先于构造方法的执行

执行顺序:静态代码>构造代码块>构造函数

但是由于 static StaticTest st = new StaticTest(); 的存在 , 导致先构造块,构造函数,然后向后执行

所以,先2,再3,再1,再4

因为b定义在下,对于静态 基本类型int默认为0.(包括未赋值的情况下都为0)

[java] view
plain copy

 print?

public class Dev {  

    static {  

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

    }  

    {  

        System.out.println("构造代码块");  

    }  

  

    public Dev() {  

        System.out.println("我是一个无参构造方法");  

    }  

  

    public Dev(String name) {  

        System.out.println("我是带有一个参数的构造方法");  

    }  

}  

1. 这段代码的执行顺序:静态代码块会先执行,并且只执行一次,接着是构造代码块执行(构造代码块在构造方法之前执行,并且每创建一次对象,它就会执行一次。而构造方法只执行一次。) 

2. 静态代码块的作用:比如我们在调用C语言的动态库时会可把.so
文件放在此处。 

3. 构造代码块的功能:(可以把不同构造方法中相同的共性的东西写在它里面)。例如:比如不论任何机型的电脑都有开机这个功能,此时我们就可以把这个功能定义 在构造代码块内。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java基础
相关文章推荐