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

  • 相关阅读:
    leetcode--Pascal's Triangle
    leetcode--Sort Colors
    leetcode--Gray Code
    leetcode--Minimum Path Sum
    leetcode--Convert Sorted List to Binary Search Tree
    leetcode--Generate Parentheses
    leetcode--Convert Sorted Array to Binary Search Tree
    leetcode--Merge Two Sorted Lists
    leetcode--Remove Element
    资源分享 | JavaScript Web应用开发【Nicolas Bevacqua】.pdf
  • 原文地址:https://www.cnblogs.com/weinan2087/p/3144564.html
Copyright © 2011-2022 走看看