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一个对象时就会加载一次。

  • 相关阅读:
    PHP中Foreach在引用时的陷阱 j神
    Yii中Session和cookie的用法 j神
    如何解决web大流量、高并发的问题 j神
    PHP无限级分类的递归算法 j神
    关于breadcrumbs j神
    MySQL索引分析和优化 j神
    Yii笔记 j神
    YII中的URL Management j神
    forward与redirect的区别 j神
    网络编程学习笔记
  • 原文地址:https://www.cnblogs.com/weinan2087/p/3144564.html
Copyright © 2011-2022 走看看