zoukankan      html  css  js  c++  java
  • 构造代码块和静态代码块,构造函数的执行

    构造代码块:给对象进行初始化,对象一建立就运行而且优于构造函数执行。

    构造代码块和构造函数的区别:构造代码块是给所有对象进行统一初始化,而构造函数是给指定的对象进行初始化。

    静态代码块:随着类的加载而执行,只执行一次。

    分析下面程序执行的结果:

     1 class Test7 {
     2     static {
     3         System.out.println("aaaaaaaaaaaaaaaaaaa");
     4     }
     5     {
     6         System.out.println("bbbbbbbbbbbbbbbbbbb");
     7     }
     8     Test7(){
     9         System.out.println("构造函数运行");
    10     }
    11 
    12     void print() {
    13         System.out.println("ccccccccccccccccccc");
    14     }
    15 
    16     static {
    17         System.out.println("eeeeeeeeeeeeeeeeeee");
    18     }
    19 }
     1 public class Test9 {
     2     static {
     3         System.out.println("dddddddddddddddddddd");
     4     }
     5 
     6     public static void main(String[] args) {
     7 
     8         Test7 d = new Test7();
     9         d.print();
    10         new Test7();
    11     }
    12 
    13     static {
    14         System.out.println("fffffffffffffffffff");
    15     }
    16 
    17 }

    程序运行的结果为:

      dddddddddddddddddddd
      fffffffffffffffffff
      aaaaaaaaaaaaaaaaaaa
      eeeeeeeeeeeeeeeeeee
      bbbbbbbbbbbbbbbbbbb
      构造函数运行
      ccccccccccccccccccc                //因为静态代码块随着类的加载而执行且只执行一次
      bbbbbbbbbbbbbbbbbbb   //这里重新new一个对象时,静态代码块不会执行,而构造代码块和构造函数执行
      构造函数运行

    结论:优先级顺序为

          静态代码块>构造代码块>构造函数

  • 相关阅读:
    hadoop:WordCount问题总结
    .mata. _root_ (转)
    Hbase笔记:批量导入
    Hbase笔记4 java操作Hbase
    wget
    中国大陆开源镜像站汇总
    全键盘操作Windows
    linux下实用命令
    /dev/null和/dev/zero的区别
    Windows xp下安装sql server2005所碰到的一些问题及解决方法
  • 原文地址:https://www.cnblogs.com/dafa4java/p/3242300.html
Copyright © 2011-2022 走看看