首页 > 其他 > 详细

类的加载过程

时间:2019-10-15 12:19:58      阅读:92      评论:0      收藏:0      [点我收藏+]
类的加载过程:

1.先加载类级别的成员(静态成员变量的方法 以及 静态初始化块,这两个打印的顺序依据出现的先后顺序)
2.再加载对象级别的成员(实例初始化块、普通成员变量的方法,打印的顺序依据出现的先后顺序)
3.构造函数

具体例子:
public class ObjectInitTest {
    public ObjectInitTest() {
        System.out.println("这是构造函数alta+Insert快捷键:ObjectInitTest()");
    }
    //静态初始化块
    static{
        b=10;
        System.out.println("静态初始化块");
    }
    //实例初始化块  对实例成员变量(依赖于对象)
    {
        System.out.println("instance init block");
    }
    private int a=method1();//普通的成员变量,对象级别的
    private static int b=method2();//静态的成员是共享的,类级别的
    private int method1() {
        System.out.println("对象级别的method 1");
        return 1;
    }
    private static int method2() {
        System.out.println("静态的,类级别的method 2");
        return 2;
    }

    public static void main(String[] args) {
        /**
         * new ObjectInitTest()
         * 对象的产生过程
         * 1. JVM会在ObjectInitTest.class文件
         * 2. 先加载类级别的成员(静态成员变量的方法 以及 静态初始化块,这两个打印的顺序依据出现的先后顺序)
         * 3. 再加载对象级别的成员(实例初始化块、普通成员变量的方法,打印的顺序依据出现的先后顺序)
         * 4.构造函数
         */
        ObjectInitTest o=new ObjectInitTest();
    }
}

技术分享图片

 

 继承类同理:  静态>普通        基类>继承类

先打印基类的静态方法以及静态初始化块(根据出现的先后顺序),再打印子类的静态方法及静态初始化块(先后顺序)。

再打印基类普通的方法以及普通实例化块(先后),最后打印基类的构造函数;再打印子类的普通方法及普通实例化块(先后),最后打印子类的构造函数

public class ObjectInitTest2 extends ObjectInitTest {
        private  static int c=method3();
        public static int method3(){
            System.out.println("这是继承类的静态方法");
            return 3;
        }
        static{
            System.out.println("继承类的静态初始化块");
        }
        private int d=method4();
        public int method4(){
            System.out.println("这是继承类的普通的成员方法");
            return 4;
        }
    {
        System.out.println("继承类的普通实例化块");
    }
        public ObjectInitTest2(){
            System.out.println("继承类的构造方法");
        }

    public static void main(String[] args) {
        ObjectInitTest2 o2=new ObjectInitTest2();
    }
}

技术分享图片

 

 

类的加载过程

原文:https://www.cnblogs.com/laurarararararara/p/11676773.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!