zoukankan      html  css  js  c++  java
  • 类加载顺序(1)

    package loader;
    
    public class Test {
    
        
        /**类加载顺序
         * 一:只研究Person类,没有继承类的情况
         * 1.在主函数中调用person类构造方法创建对象
         * 2.在调用构造方法前先加载static静态块(可以调用静态方法)
         * 3.加载普通构造块(可以调用普通方法)
         * 4.完成构造方法
         * @param args
         */
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            Person p=new Person();//第一步
        
        }
    
    }
    package loader;
    
    public class Person {
        public String test="PersonField";
        public static String testStatic="PersonStaticField";
        
        public Person(){//第1.5步
            //第四步
            System.out.println("Person的构造方法");
        }
        public void test(){
            System.out.println("Person的普通方法");
        }
        public static void testStatic(){
            System.out.println("Person的静态方法");
        }
        
        {//第三步
            this.test();
            System.out.println("Person的普通块");
        }
        static{//第二步
            Person.testStatic();
            System.out.println("Person的静态块");
        }
        
    
    }
    输出顺序:
    Person的静态方法 Person的静态块 Person的普通方法 Person的普通块 Person的构造方法

    package loader;
    public class Person {public String test="PersonField";public static String testStatic="PersonStaticField";public Person(){//第一。五步//第四步System.out.println("Person的构造方法");}public void test(){System.out.println("Person的普通方法");}public static void testStatic(){System.out.println(Person.testStatic);System.out.println("Person的静态方法");}{//第三步this.test();System.out.println("Person的普通块");}static{//第二步Person.testStatic();System.out.println("Person的静态块");}
    }

  • 相关阅读:
    treeview 递归
    循环递归遍历XML文档或按某要求遍历XML文档
    SQL Server、IIS和 ASP.NET安全配置
    C# USING 语句块
    C# 基础语法
    不安装oracle 客户端连接oracle DDTeck连接语法
    Java中堆和栈的区别
    C# 采用OLDB方式连接EXCEL
    EXCEL 列宽
    C# 问号用法
  • 原文地址:https://www.cnblogs.com/hebiao/p/12402581.html
Copyright © 2011-2022 走看看