美文网首页
静态代码块、构造代码块和构造函数的区别和联系

静态代码块、构造代码块和构造函数的区别和联系

作者: Java技术范 | 来源:发表于2018-08-12 17:55 被阅读0次

    01.静态代码块

        静态代码块使用static关键字进行修饰,运行在类初始化阶段(这点不清楚的同学需要恶补JVM知识哈),静态代码块只运行一次,主要用于类变量的初始化和赋值。静态代码块的金典用法是读取配置文件,代码如下:

        这里使用静态代码块加载配置文件,让这个配置文件仅仅只呗加载一次;

    02.构造代码块

        构造代码块运行在静态代码块之后,构造函数之前,主要用于对象实例数据的初始化问题,需要注意的是与构造函数不同的是,对于每次调用不同构造函数都会使用构造代码块,但是对于不同的构造函数,构造函数初始化的实例数据不同的。具体代码示例如下:

    这里的运行结果如下:

    可以看出在无参数的构造函数运行时,已经初始化了age和name

    03.构造函数

        构造函数是在对象建立的时候调用的,构造函数的作用是给对象初始化的;一个对象建立,一个构造函数只是运行一次,但是可以被对象调用多次。示例代码如下:

    04.总结

    静态代码块:

        1.使用static关键字修饰,是在类初始化阶段运行静态代码块

        2.静态代码块一般用于只需要加载一次的场景下,比如读取配置文件

        3.静态代码块主要类调用

    构造函数:

        1.构造出对象时才会调用构造函数

        2.构造函数建立对象时只是运行一次,不过可以多次调用该方法获取不同实例对象

        3.不同的构造函数可能初始化不同的实例数据部分

    构造代码块:

        1.运行于静态代码块之后,构造函数之前

        2.不同的构造函数可能初始化的实例数据部分不一样,但是都会运行构造代码块

        3.主要用于初始化对象

    05.面试常考

        下面的面试题请大家思考?

        1.静态代码块、构造块和构造函数的执行顺序?

        2.构造函数和构造代码块的区别?(百度面试题)

    相关文章

      网友评论

          本文标题:静态代码块、构造代码块和构造函数的区别和联系

          本文链接:https://www.haomeiwen.com/subject/jfzsbftx.html