zoukankan      html  css  js  c++  java
  • 静态代码块与静态函数的执行顺序

    class Person
    {
            Person()
            {
                    System.out.println("-----------构造函数------------");
            }

            {
                    System.out.println("-----------构造代码块------------");
            }
            static
                    {
                            System.out.println("-----------静态代码块------------");
                    }
    }

    class  Test2
    {
            public static void main(String[] args)
            {
                    Person p1 = new Person();
                    Person p2 = new Person();
            }
    }

    运行结果:
    -------------------静态代码快-------------------
    -------------------构造代码快-------------------
    -------------------构造函数----------------------
    -------------------构造代码快-------------------
    -------------------构造函数----------------------

    以下是我的理解:
    1.静态代码块和构造代码的作用范围是整个类,用于初始化一个类中的共性属性,构造函数的作用范围是某一个特定的类,用于初始化一个类中的特有属性;
    2.静态代码块是随着类的加载而加载,构造代码块和构造函数是随着对象的创建而加载,因此它们的加载顺序是:静态代码块、构造代码块、构造函数;
    3.静态代码块随着类的加载而加载但仅加载一次,而构造代码块与构造函数是随着对象的加载而加载,每当new一个对象时就会加载一次。

  • 相关阅读:
    开始学习C#
    关于串口数据读取的几个问题
    Joel测试
    VC查找内存泄漏技巧【转】
    思考题一
    自我介绍
    2020面向对象程序设计寒假作业1 题解
    思考题二
    题解 洛谷P2158 【[SDOI2008]仪仗队】
    深入浅出InfoPath系列
  • 原文地址:https://www.cnblogs.com/weinan2087/p/3144564.html
Copyright © 2011-2022 走看看