zoukankan      html  css  js  c++  java
  • jvm对类的加载顺序测试

    父类

    package test;

    public class Parent {
        
        public static int a = menthod2();
        public int b = 11;
        {
            System.out.println("父快类的非静态块");
        }
        
        static {
            System.out.println("父类的静态块");
        }
        
        public Parent(){
            System.out.println("父类的构造函数");
        }
        
        public static void menthod(){
            System.out.println("父类的静态方法");
        }
        
        public static int   menthod2(){
            System.out.println("父类的静态变量");
            return 10;
        }
        
        public void menthod1(){
            System.out.println("父类的非静态方法");
        }

    }

    子类

    package test;

    public class Parent {
        
        public static int a = menthod2();
        public int b = 11;
        {
            System.out.println("父快类的非静态块");
        }
        
        static {
            System.out.println("父类的静态块");
        }
        
        public Parent(){
            System.out.println("父类的构造函数");
        }
        
        public static void menthod(){
            System.out.println("父类的静态方法");
        }
        
        public static int   menthod2(){
            System.out.println("父类的静态变量");
            return 10;
        }
        
        public void menthod1(){
            System.out.println("父类的非静态方法");
        }

    }

    测试得到

    public class Test {
        public static void main(String[] args) {
            Child child = new Child();
            child.menthod();
            
        }

    }

    输出:

    父类的静态变量
    父类的静态块
    子类的静态变量
    子类的静态块
    父快类的非静态块
    父类的构造函数
    子类的非静态块
    子类的构造函数
    子类的静态方法

    说明Jvm的执行顺序是:

    父类的静态变量----->父类的静态块----->子类的静态变量------>子类静态块------>父类的非静态块------>父类的构造函数------>子类的非静态块---子类的构造函数

    ----->子类的静态方法

    注意: char类型的基本类型初始化的时候值为null

       一个构造函数中只能调用另外一个构造函数,不能同时调用两个构造函数..

  • 相关阅读:
    Spring 学习十五 AOP
    Spring 学习十四 Spring security安全
    博客文格式优化
    作为一名软件测试工程师,需要具备哪些能力
    单元测试工程师需要具备的任职资格
    初识安全测试(一)
    压力测试工具JMeter入门教程
    Jmeter的优点是什么?除了轻量级,它和LoadRunner有什么本质区别
    初识Jmeter(一)
    初识Selenium(四)
  • 原文地址:https://www.cnblogs.com/working/p/3585269.html
Copyright © 2011-2022 走看看