• 类加载顺序(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的静态块");}
    }

  • 相关阅读:
    第四次实验报告
    第三次实验报告
    第五章循环结构课后反思
    第二次实验报告
    第一次实验报告
    第一次作业
    第九章 结构体与共用体
    第八章实验报告
    第七章数组实验
    第六章函数与宏定义实验报告(2)
  • 原文地址:https://www.cnblogs.com/hebiao/p/12402581.html
Copyright © 2020-2023  润新知