zoukankan      html  css  js  c++  java
  • static之静态初始化块

     

    static之静态初始化块

         所有的静态初始化块都优先执行,其次才是非静态的初始化块和构造函数,它们的执行顺序是:
          父类的静态初始化块
          子类的静态初始化块
          父类的初始化块
          父类的构造函数
          子类的初始化块
          子类的构造函数
          也就是说程序运行时静态初始化块最先被执行,然后执行普通初始化块,最后才执行构造方法由于静态初始化块只在类加载时执行一次,所以当再次创建对象 hello2 时并未执行静态初始化块。

    比如下面的代码:

    运行结果:


    需要特别注意:
    1)静态初始化块只在类加载时执行,且只会执行一次,同时静态初始化块只能给静态变量赋值,不能初始化普通的成员变量。
    2)非静态初始化块的代码会在类构造函数之前执行。使用时应当养成把初始化块写在构造函数之前的习惯,便于调试。

    参考:

    • http://www.cnblogs.com/BlackStorm/p/5699965.html
    • 慕课网 Java入门第二季

                                         

  • 相关阅读:
    [hdu2196]Computer树的直径
    [poj2342]Anniversary party树形dp入门
    链式前向星模板
    LintCode-50.数组剔除元素后的乘积
    Markdown的基本语法
    LintCode-8.旋转字符串
    LintCode-1.A + B 问题
    LintCode-61.搜索区间
    LintCode-88.最近公共祖先
    LintCode-54.转换字符串到整数
  • 原文地址:https://www.cnblogs.com/s1-myblog/p/6795470.html
Copyright © 2011-2022 走看看