美文网首页
Java类初始化加载过程

Java类初始化加载过程

作者: 纳米君 | 来源:发表于2016-08-25 16:47 被阅读81次

联动:为什么构造代码块先于构造函数执行?

梳理一下Java中类的加载顺序~

//父类
public class Father {

    static {
        System.out.println("父类静态代码块...");
    }

    {
        System.out.println("父类构造代码块...");
    }

    public Father() {
        System.out.println("父类构造函数...");
    }

    public void run() {
        System.out.println("父类方法...");
    }

}

//子类
public class Son extends Father {

    public static int a = 1;

    static {
        a = 2;
        System.out.println("子类静态代码块...");
    }

    public String name;

    public Son(String name) {
        System.out.println("子类构造函数...");
        this.name = name;
    }

    {
        a = 3;
        System.out.println("子类构造代码块...");
    }

    @Override
    public void run() {
        System.out.println("子类复写父类方法: " + a);
    }

    public static void main(String[] args) {
        Father father = new Son("java boy");
        father.run();
        new Son("java boy");
    }

}

打印结果:

父类静态代码块...
子类静态代码块...
父类构造代码块...
父类构造函数...
子类构造代码块...
子类构造函数...
子类复写父类方法: 3
父类构造代码块...
父类构造函数...
子类构造代码块...
子类构造函数...

结论:

1. 父类先于子类进行初始化;
2. 静态代码块随着类的加载而加载,且只执行一次;
3. 构造代码块先于构造函数执行,两者每new一次就执行一次;
4. 从以上3点可以得出执行顺序:父类静态代码块->子类静态代码块->父类构造代码块->父类构造函数->子类构造代码块->子类构造函数。

相关文章

  • 好程序员java培训分享Java面试宝典:类的加载过程

    好程序员java培训分享Java面试宝典:类的加载过程,类加载过程主要包含加载、验证、准备、解析、初始化、使用、卸...

  • 面经题目学习

    java类加载过程类加载过程:加载、验证、准备、解析、初始化。类加载过程中主要是将Class文件(类的二进制字节流...

  • 类加载机制

    目录 概念 加载过程 初始化时机 类初始化顺序注意点 双亲委派模型 自定义类加载器 类加载 概念 Java虚拟机把...

  • 类加载的双亲委派机制

    类加载的过程: 加载,链接(验证,准备,解析),初始化loadClass只做到了加载。 Java中的类加载器包括四...

  • JAVA类加载过程&主动引用和被动引用

    1.java类加载过程 重新回顾了java的类的生命周期,主要有:加载、链接、初始化、使用、卸载。上述过程包括了一...

  • Java虚拟机内存管理——内存空间划分

    一、类加载过程,双亲委派模型 1.Java中类加载分为3个步骤:加载、链接、初始化。 加载。加载是将字节码数据从不...

  • Java ClassLoader机制及初始化步骤

    Java类加载及变量初始化过程 Java虚拟机是如何将编译好的class文件加载成为Java类型?加载之后如何初始...

  • 深入理解JVM系列(二)类加载过程

    Java类的加载过程主要分为三大步:Java虚拟机动态加载、链接和初始化类和接口。加载是找到具有特定名称的类或接口...

  • (夜食)Java类的加载过程

    Java类的加载过程 类从被加载到JVM中开始,到卸载为止,整个生命周期包括:加载、验证、准备、解析、初始化、使用...

  • java对象的创建过程是什么

    java对象的创建过程是什么 java对象的创建过程: 类加载检查-->分配内存-->初始化零值-->设置对象头-...

网友评论

      本文标题:Java类初始化加载过程

      本文链接:https://www.haomeiwen.com/subject/lfrasttx.html