zoukankan      html  css  js  c++  java
  • 关于静态构造函数

    程序如下所示

        class Program
        {
            static void Main(string[] args)
            {

                1、 Singleton.getInstance();

                2、Singleton s = new Singleton();
                Console.ReadLine();
            }
        }

    public  class Singleton
        {
            private static int instance;
            public Singleton()
            {
                Console.WriteLine("no static Singleton");
            }
            static Singleton()
            {
                Console.WriteLine("static Singleton");
            }
            public static void getInstance()
            {
                if (instance == 0)
                {
                    instance = instance+1;
                }
                Console.WriteLine( instance+"");
            }
        }

    1、 Singleton.getInstance();此时程序会先执行静态构造函数,再调用getInstance()方法,程序会先输出“static Singleton” 再输出“1”

    2、Singleton s = new Singleton();
    此时调先执行 静态构造函数,再调用非静态构造函数,最后调用getInstance()方法,输出“static Singleton” 再输出“no static Singleton”最后输出“1”

    注:静态构造函数只执行一次,当子类多次实例化时候,父类的静态构造函数只执行一次,父类的非静态构造函数则会多次执行。

  • 相关阅读:
    spring揭秘读书笔记----spring的ioc容器之BeanFactory
    spring启动加载过程源码分析
    java线程数过高原因分析
    spring揭秘读书笔记----ioc的基本概念
    git merge rebase的区别及应用场景
    spring实现定时任务
    jetty.xml解析
    Hackthebox--------irked
    CTF之信息泄漏
    CTF web题型解题技巧
  • 原文地址:https://www.cnblogs.com/yidianfeng/p/2262904.html
Copyright © 2011-2022 走看看