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

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

  • 相关阅读:
    正则匹配
    curator.zookeeper
    linux tail 命令查看日志 并加上颜色
    k8s一些命令
    k8s文件传递及scp
    Linux下如何在不解压jar包查看或修改配置文件
    MySQL教程之concat以及group_concat的用法
    JavaCV读取流设置超时
    学习html5 canvas 圆环
    jquery使用$.each()
  • 原文地址:https://www.cnblogs.com/working/p/3585269.html
Copyright © 2011-2022 走看看