zoukankan      html  css  js  c++  java
  • 静态块(变量)和非静态块(变量)

    package staticinit.one;
    
    public class Main1 {
        public static void main(String[] args) {
            System.out.println("第一遍初始化StaticOrInstance...");
            new StaticOrInstance();
            System.out.println("第二遍初始化StaticOrInstance...");
            new StaticOrInstance();
            /*
             * 输出结果:
             * 第一遍初始化StaticOrInstance...
             * Mug(3)
             * Mug(4)
             * Mug(1)
             * Mug(2)
             * StaticOrInstance constructor...
             * 第二遍初始化StaticOrInstance...
             * Mug(1)
             * Mug(2)
             * StaticOrInstance constructor...
             */
        }
    }
    
    class StaticOrInstance {
        public Mug mug1;
        public Mug mug2;
        public static Mug mug3;
        public static Mug mug4;
    
        {
            mug1 = new Mug(1);
            mug2 = new Mug(2);
        }
        static {
            mug3 = new Mug(3);
            mug4 = new Mug(4);
        }
        public StaticOrInstance() {
            System.out.println("StaticOrInstance constructor...");
        }
    
    }
    
    class Mug {
        public Mug() {
        }
    
        public Mug(int i) {
            System.out.println("Mug(" + i + ")");
        }
    }
    
    

    注:1.在类初始化时,先初始化静态块或变量,再初始化非静态块或变量(StaticOrInstance类中静态块位于非静态块后面,但是输出结果中静态块先初始化);2.静态块或变量只会在第一次初始化时初始化,而非静态块或变量会在每一次类初始化时执行初始化(在第二次初始化时静态块没有再次初始化);3.静态块(变量)和非静态块(变量)均在构造方法之前被初始化。

  • 相关阅读:
    MySQL主从复制
    高可用系列之Nginx
    02.PHP7.x编译详解
    01.PHP5.x编译详解
    月薪2500到年薪20+我经历了些什么?
    更换gitlab公网IP,引发的故障。
    博客资料汇总
    Nginx编译参数
    Zabbix3.0部署最佳实践
    SharePoint 2013让页面显示错误
  • 原文地址:https://www.cnblogs.com/wjc920/p/9256175.html
Copyright © 2011-2022 走看看