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一个对象时,静态代码块不会执行,而构造代码块和构造函数执行 
    构造函数运行 

    结论:优先级顺序为

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

  • 相关阅读:
    VMware 虚拟机下载与安装
    技术点
    使用 localstorage 写入浏览器并获取
    Vue 生命周期
    Java程序中使用 Jsoup 爬虫( 简单示例 )
    Java程序中实现 MySQL数据库的备份与还原
    微信小程序快捷键(Mac和windows)
    SEO需要掌握的基础知识
    好用的图片压缩在线网站(几乎不损伤图片质量)
    CSS3新增伪类--好用的:target
  • 原文地址:https://www.cnblogs.com/luoquan/p/5319826.html
Copyright © 2011-2022 走看看