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

    结论:优先级顺序为

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

  • 相关阅读:
    隐藏控件标签
    在线删除文件asp.net c#
    access数据库在线生成xls电子表格
    html5 css练习,弹性三栏布局
    html5 css多列布局
    Java利用webservice创建接口案例源码
    Java-Tomcat内存溢出详解
    Linux基本命令——ps/top
    Weka——如何连接MySQL数据库
    Longest Substring Without Repeating Characters
  • 原文地址:https://www.cnblogs.com/luoquan/p/5319826.html
Copyright © 2011-2022 走看看