美文网首页
静态初始化块

静态初始化块

作者: phoebe_gyq | 来源:发表于2017-05-12 19:00 被阅读0次
package javaTest;

public class Root {
    static{
        System.out.println("静态ROOT");
    }
    {
        System.out.println("普通ROOT");
    }

    public Root(){
        System.out.println("无参数构造器ROOT");
    }
}
 class Mid extends Root{
     static{
            System.out.println("静态Mid");
        }
        {
            System.out.println("普通Mid");
        }

        public Mid(){
            System.out.println("无参数构造器Mid");
        }
        public Mid(String msg){
            this();
            System.out.println("有参数构造器Mid"+msg);
        }
        
 }
 class Leaf extends Mid{
     static{
            System.out.println("静态Leaf");
        }
        {
            System.out.println("普通Leaf");
        }

        public Leaf(){
            super("java");
            System.out.println("无参数构造器Leaf");
        }
        
        
 }
 
public class Test {
    public static void main(String[] args) {
        new Leaf();
        new Leaf();
    }

}

执行结果:

静态ROOT
静态Mid
静态Leaf
普通ROOT
无参数构造器ROOT
普通Mid
无参数构造器Mid
有参数构造器Midjava
普通Leaf
无参数构造器Leaf
普通ROOT
无参数构造器ROOT
普通Mid
无参数构造器Mid
有参数构造器Midjava
普通Leaf
无参数构造器Leaf

分析:
1.每次创建一个Leaf对象的时候,
先静态,再无构造器,最后有构造器。静态的父类和子类先执行。
2.先父类再子类
3.两次创建Leaf实例,静态的会存在虚拟机内,故只需要执行一次。

相关文章

  • 类初始化顺序

    对于静态变量、静态初始化块、变量、初始化块、构造器,它们的初始化顺序依次是(静态变量、静态初始化块)>(变量、初始...

  • 4.7-全栈Java笔记:静态初始模块与参数传值机制

    静态初始化块 构造方法用于对象的初始化! 静态初始化块,用于类的初始化操作!在静态初始化块中不能访问非static...

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

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

  • 深入理解Java中静态初始化块、初始化块和构造方法

    在Java中,有两种初始化块:静态初始化块和非静态初始化块。它们都是定义在类中,用大括号{}括起来,静态代码块在大...

  • java类初始化机制

    初始化顺序 无继承类初始化 初始化顺序静态变量/静态代码块 -> 成员变量/代码块 -> 构造函数其中,静态变量与...

  • 在 C++ 中模拟 Java 的静态初始化块 【翻译】

    什么是静态初始化块? 在 Java 中,有一种称为静态初始化块的结构。静态初始化块将在 Java 第一次运行时被加...

  • Java 静态块 Android 中的使用实例

    静态块也被称为静态初始化块。静态初始化块是以 static 关键字开头并用大括号括起来的正常的代码块 。下面是一个...

  • Java类的初始化顺序

    这票文章主要想来说一下Java类各部分(非静态字段初始化、非静态块、静态字段初始化、静态块、构造函数)的执行顺序。...

  • Java类的初始化顺序

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

  • JAVA初始化顺序

    Java类的初始化顺序 (静态变量、静态初始化块、变量、初始化块、构造器) 大家在去参加面试的时候,经常会遇到这样...

网友评论

      本文标题:静态初始化块

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