• JAVA_02


    class Test2_Extents{
        public static void main(String[] args){
            System.out.println("Hello World");
            Zi z = new Zi();
            /*
            1.Jvm 调用main方法,
            main方法进栈
            2.遇到Zi z = new Zi(),会现将Fu.class和Zi.class分别加载进内存,在创建对象,当Fu.class加载进内存 父类的静态代码块会随着Fu.class一起加载,当Zi.class加载进内存,子类的静态代码块儿会随着Zi.class一起加载 静态代码块Fu,第二个输出静态代码块Zi
            3.走Zi类的构造方法,因为在Java中是分成初始化的,先初始化父类,在初始化子类,所以先走的父类构造,但是在执行父类构造的时候,发现父类有构造代码块,构造代码块儿是优先于构造方法执行的所以 第三个输出构造代码块Fu,第四个输出构造方法Fu
            4.Fu类初始化结束,子类初始化,第五个输出的是构造代码块Zi,最后输出构造方法Zi
             */
        }
    }
    class Fu{
        static{
            System.out.println("静态代码块Fu");
        }
        {
            System.out.println("构造代码块Fu");
        }
        public Fu(){
            System.out.println("构造方法Fu");
        }
    }
    class Zi extends Fu{
        static {
            System.out.println("静态代码块Zi");
        }
        {
            System.out.println("构造代码块Zi");
        }
        public Zi(){
            System.out.println("构造方法Zi");
        }
    }

    https://www.tongbiao.xyz/
  • 相关阅读:
    .NET总结
    gzip压缩输出
    矩阵 快速幂
    Mock单元测试
    mysql乱码原因之一
    写个android下倒计时软件
    linux gcc下实现简单socket套接字小程序
    gcc下MD5破解
    #1045 Access denied for user 'root'@'localhost'
    转android四种动画
  • 原文地址:https://www.cnblogs.com/tongbiao/p/8319156.html
Copyright © 2020-2023  润新知