zoukankan      html  css  js  c++  java
  • java静态无名函数(静态初始化块)与java的运行流程

    public class Test {



    public Test() {


    System.out.println(" 构造函数");




    @1:静态初始化块
    static


    {


    System.out.println("static{}");




    @2:初始化块
    {


    System.out.println("{}");


    }



    public static void main(String[] args) {


    System.out.println("main()");


    }



    }





    运行结果为:


    static{}


    main() 


    程序执行顺序为:静态初始化块static{}-->初始化块{}-->构造函数constructor; 

    注意:即使没有生成new此实例或此类是否有static main()函数,静态初始化块static{}也照样会运行。



    在继承的情况下:


    class Test{


    Test(){


    System.out.println("父类构造函数");


    }


    static{


    System.out.println("父类静态初始化块");

     
    }


    {


    System.out.println("父类初始化块");


    }


    }




    public class  TestChild  extends Test{


    public TestChild() {


    System.out.println("子类构造函数");


    }  


    static


    {


    System.out.println("子类静态初始化块");


    }


    {


    System.out.println("子类初始化块");


    }


    public static void main(String[] args) { 

    new TestChild();


    }



    }


    运行结果:


    父类静态初始化块


    子类静态初始化块


    父类初始化块


    父类构造函数


    子类初始化块


    子类构造函数


    程序运行顺序为:父静态-->子静态-->父初始化及构造-->子初始化及构造;


    注意:初始化块和构造是接连运行的,不会父类子类交替. 

  • 相关阅读:
    [BZOJ1222/Luogu2224][HNOI2001]产品加工
    [BZOJ1079/Luogu2476][SCOI2008]着色方案
    [BZOJ3098]Hash Killer II
    [BZOJ1818][CQOI2010]内部白点
    [BZOJ1497/Luogu4174][NOI2006]最大获利
    [BZOJ2330/Luogu3275][SCOI2011]糖果
    [BZOJ1208/Luogu2286][HNOI2004]宠物收养场
    [BZOJ1054/Luogu4289][HAOI2008]移动玩具
    Com组件介绍
    webBrowse官方说明
  • 原文地址:https://www.cnblogs.com/wonglou/p/3735167.html
Copyright © 2011-2022 走看看