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

    结论:优先级顺序为

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

  • 相关阅读:
    Vue大文件上传 vuesimpleloader分片上传到AWS S3
    如何把设备安全的接入AWS IoT(一)
    Vue大文件分片上传 直连AWS S3
    JAVA AWS 根据Dynamodb增删改查数据
    JAVA实现和AWS IOT订阅、发布MQTT消息
    AWS 使用总结及部分服务学习记录
    Vue 刷新组件
    Vue文件上传 自定义样式 Button按钮代替Input 并通过java上传(非分片)到AWS S3
    sql 去年,月
    json2【转】
  • 原文地址:https://www.cnblogs.com/luoquan/p/5319826.html
Copyright © 2011-2022 走看看