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.
     */

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



  • 相关阅读:
    Distinct Values
    树状数组求逆序数
    Color the ball
    Cube
    树状数组
    手动编写JQUERY插件
    JQuery和原生JS跨域加载JSON数据或HTML。
    使用CEF(CEFGLUE)作为您的客户端UI(一)
    给IIS添加网站配置权限
    SQL SERVER 报:由于数据移动,未能继续以 NOLOCK 方式扫描错误的解决办法。
  • 原文地址:https://www.cnblogs.com/xkxf/p/9372483.html
Copyright © 2011-2022 走看看