zoukankan      html  css  js  c++  java
  • Java笔记 #04# 类的初始化顺序补充

    参考 java中的类的初始化顺序详解

    package org.sample;
    
    class Bread {
        Bread() { System.out.println("Bread()"); }
    }
    class Cheese {
        Cheese() { System.out.println("Cheese()"); }
    }
    class Lettuce {
        Lettuce() { System.out.println("Lettuce()"); }
    }
    
    public class TestOrder {
    
        static {
            System.out.println("static block - 1 has been executed.");
        }
    
        {
            System.out.println("non-static - 1 block has been executed.");
        }
    
        private static final Bread bread = new Bread();
        private static final Cheese cheese = new Cheese();
        static {
            System.out.println("static block - 2 has been executed.");
        }
        private static final Lettuce lettuce = new Lettuce();
    
        private final Bread bread1 = new Bread();
        {
            System.out.println("non-static - 2 block has been executed.");
        }
        private final Cheese cheese1 = new Cheese();
        private final Lettuce lettuce1 = new Lettuce();
    
        public static void run() {
            System.out.println("run static method.");
        }
    
        public TestOrder() {
            System.out.println("create object.");
        }
    
        public static void main(String[] args) {
            TestOrder.run();
            new TestOrder();
        }
    }
    
    /*
    output=
    static block - 1 has been executed.
    Bread()
    Cheese()
    static block - 2 has been executed.
    Lettuce()
    run static method.
    non-static - 1 block has been executed.
    Bread()
    non-static - 2 block has been executed.
    Cheese()
    Lettuce()
    create object.
     */

    之所以补充上面的代码,主要是为了强调:【实例域以及初始化块】的执行也是依赖于代码书写顺序的(自上而下),而并非随机执行或者按照某种优先顺序。不过,一些特殊情况可能需要另当别论。



  • 相关阅读:
    git将已存在的项目转换成git项目&托管git服务器
    联合索引
    MyISAM和InnoDb的关系
    NPOIHelper
    C# CRC各种转换
    appcloud 微信分享大图片
    C# 微信JSSDK 获取配置信息
    简易delegate委托
    GPS、谷歌、百度、高德坐标相互转换
    反射执行方法WINFROM
  • 原文地址:https://www.cnblogs.com/xkxf/p/9372483.html
Copyright © 2011-2022 走看看