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.      void print() {
    12.         System.out.println("ccccccccccccccccccc");
    13.      }
    14.      static {
    15.          System.out.println("eeeeeeeeeeeeeeeeeee");
    16.     }
    17. }
    复制代码
    1. public class Test9 {
    2. static {
    3.         System.out.println("dddddddddddddddddddd");
    4.      }
    5.     public static void main(String[] args) {
    6.        Test7 d = new Test7();
    7.          d.print();
    8.         new Test7();
    9.      }
    10.     static {
    11.        System.out.println("fffffffffffffffffff");
    12.     }
    13. }
    复制代码



    程序运行的结果为:

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

    结论:优先级顺序为

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

  • 相关阅读:
    webpack学习笔记--配置resolve
    常用 Git 命令清单
    彻底解决Webpack打包慢的问题
    vue-cli3安装遇到的问题,卸载不掉旧版本,导致更新不了
    在5分钟内搭建企业内部私有npm仓库
    package.json中你还不清楚的browser,module,main 字段优先级
    细说 peerDependencies
    对peerDependencies的理解
    [转载]罗技Usb Receiver在Win7 64位系统中驱动安装方法
    波峰波谷的判断
  • 原文地址:https://www.cnblogs.com/luoquan/p/5319826.html
Copyright © 2011-2022 走看看