美文网首页
java类初始化顺序

java类初始化顺序

作者: zoterap | 来源:发表于2019-02-12 09:23 被阅读0次

结论

  • 基类静态代码块
  • 子类静态代码块
  • 基类代码块
  • 基类构造函数
  • 子类代码块
  • 子类构造函数

验证代码

package com.zoterap.javabasic.classinit;

public class Base {

    /**
     * 1. 「基类」的静态代码块&静态成员变量,按照先后顺序执行
     */
    //-----基类静态代码块 BEGIN-----
    static {
        System.out.println("基类静态代码块1");
    }

    private static String staticValue = LogUtil.print("基类静态成员变量");

    static {
        System.out.println("基类静态代码块2");
    }
    //-----基类静态代码块 END-----

    /**
     * 3. 「基类」代码块&成员变量,按照先后顺序执行
     */
    //-----基类代码块 BEGIN-----
    {
        System.out.println("基类代码1");
    }

    private String value = LogUtil.print("基类成员变量");

    {
        System.out.println("基类代码2");
    }
    //-----基类代码块 END-----

    /**
     * 4. 「基类」构造函数
     */
    Base() {
        System.out.println("基类构造函数");
    }

    static class Son extends Base {

        /**
         * 2. 「子类」的静态代码块&静态成员变量,按照先后顺序执行
         */
        //-----子类静态代码块 BEGIN-----
        static {
            System.out.println("「子类」静态代码块1");
        }

        private static String staticValue = LogUtil.print("「子类」静态成员变量");

        static {
            System.out.println("「子类」静态代码块2");
        }
        //-----子类静态代码块 BEGIN-----


        /**
         * 5. 「子类」代码块&成员变量,按照先后顺序执行
         */
        //-----子类代码块 BEGIN-----
        {
            System.out.println("「子类」代码块1");
        }

        private String value = LogUtil.print("「子类」成员变量");

        {
            System.out.println("「子类」代码块2");
        }
        //-----子类代码块 END-----

        /**
         * 6. 「子类」构造函数
         */
        Son() {
            System.out.println("「子类」构造函数");
        }
    }

    public static void main(String[] args) {
        new Son();
    }

}

相关文章

  • 构造器内部的多态方法的行为

    上一篇 :Java类初始化顺序 上一节我们简单总结了类的初始化顺序。父类(静态变量、静态初始化块)>子类(静态变量...

  • 类初始化和加载过程

    一、对象的初始化顺序: java类加载器加载类的顺序:http://blog.csdn.net/crazycode...

  • JAVA的类加载顺序

    理解关于java类的加载顺序 首先来捋一捋java类的加载顺序吧 父类静态代码块 》》静态代码初始化,静态属性(带...

  • Java类加载与初始化

    今天复习了一下java类加载时的初始化顺序,先记录一下心得,代码后续补上。 类加载时的初始化顺序 1、一般来说,类...

  • Java类的初始化顺序

    Java类的初始化顺序 (静态变量、静态代码块)> 类里的 main()(如果有的话) > (变量、初始化块) >...

  • Java和Kotlin类的初始化顺序

    Java Java程序初始化的顺序:父类静态变量 -> 父类静态代码块 -> 子类静态变量 -> 子类静态代码块 ...

  • 设计模式——工厂,策略,建造者

    Java 类初始化顺序基本分为以下几种:静态块,初始化块,静态方法,构造函数块,静态变量,成员变量对于块顺序,静态...

  • java 类初始化 顺序

    Java 类初始化介绍 java语言在使用过程中最先开始就是初始化,在工作中如果遇到什么问题需 要定位往往到最后也...

  • java类初始化顺序

    1.静态代码块,静态变量,按代码顺序先后执行.2.构造代码块,成员变量,按代码顺序先后执行.3.先执行构造块或成员...

  • Java类初始化顺序

    开始记录之前,我想先上一张图片,这是书本上给出的代码示例,不知道大家的第一感觉是什么,反正我第一次看到这段代码的时...

网友评论

      本文标题:java类初始化顺序

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