`

static块和构造函数的执行顺序

    博客分类:
  • J2SE
 
阅读更多
public class OrderTest {

    public static void main(String[] args) {
        /*
        * 结果:
             parent static block
            Child static block
            parent construct block
            Child construct block
        */
        new Child();
        /*
        * 
        * parent construct block
           Child construct block
        */
        new Child();
    }
}

class Parent {
    static {
        System.out.println("parent static block");
    }

    public Parent() {
        System.out.println("parent construct block");
    }
}

class Child extends Parent {
    static {
        System.out.println("Child static block");
    }

    public Child() {
        System.out.println("Child construct block");
    }
}

执行顺序

1 父类的静态代码块

2 子类的静态代码块

3 父类的构造方法

4 子类的构造方法
分享到:
评论

相关推荐

    构造函数与静态块的执行顺序

    在探讨继承中子类与父类构造函数及静态块的执行顺序时,我们首先需要理解构造函数和静态块的基本概念及其在Java中的作用。构造函数主要用于初始化对象的状态,而静态块则是在类加载到内存中时执行的一段代码,通常...

    java static块和构造函数的实例详解

    在 Java 中,static 块和构造函数的执行顺序是非常重要的。通常情况下,static 块在类加载时执行,而构造函数在类实例化时执行。下面是一个简单的示例代码: ```java public class WebSerivceTest { private ...

    java类中静态域、块,非静态域、块,构造函数的初始化顺序

    ### Java 类中静态域、块,非静态域、块,构造函数的初始化顺序 #### 一、概述 在 Java 编程语言中,类的初始化顺序对于理解程序的行为至关重要。特别是当涉及到静态域(静态变量)、非静态域(实例变量)、静态块...

    14_构造函数 视频

    3. **构造函数重载**:一个类可以有多个构造函数,只要它们的参数列表不同(参数个数、类型或顺序),这就是构造函数的重载。这样可以根据需要提供多种初始化方式。 4. **构造函数的调用**:当使用`new`关键字创建...

    构造函数继承.关于java

    2. **构造函数调用顺序**:在子类构造函数中,必须先调用父类的构造函数(使用`super`),然后再执行子类构造函数中的其他代码。 3. **构造函数的可访问性**:子类只能访问具有相同或更宽松访问级别的父类构造函数。...

    java中静态代码块与构造方法的执行顺序判断

    在Java编程语言中,了解静态代码块和构造方法的执行顺序是至关重要的,尤其是在处理类的初始化和对象的创建时。下面将详细解释这些概念及其执行逻辑。 首先,静态代码块(也称为静态初始化器)是由`static`关键字...

    继承与static精选例题

    2. **继承关系中的构造函数执行顺序**:在创建子类对象时,会先执行父类的构造函数,然后再执行子类自己的构造函数。如果父类构造函数中有初始化其他类对象的操作,则会先执行这些对象的构造函数。 3. **构造函数与...

    Java静态初始化块和对象初始化块

    静态初始化块和对象初始化块的执行顺序不同。静态初始化块在类加载时执行,而对象初始化块在创建新对象时执行。它们可以相互配合,以实现更复杂的初始化逻辑。例如,静态初始化块可以用来设置全局配置,而对象初始化...

    java中的static变量,方法,代码块

    2. 对象创建时,先执行类中的非静态代码块,再调用构造函数。 通过上述分析,我们可以清楚地看到`static`关键字在Java中是如何被运用的,及其在变量、方法和代码块管理上的独特优势。理解这些概念,对于编写高效、...

    Java static静态初始快

    1. **执行顺序**:静态初始化块在非静态初始化块之前执行。当类第一次被加载时,JVM会按照它们在源代码中的顺序执行静态初始化块。 2. **类加载机制**:Java类的加载是懒加载的,即只有在类被首次使用时,JVM才会...

    静态代码块

    2. **执行顺序**:静态代码块的执行优先于构造代码块和构造函数。这是因为类的加载发生在对象创建之前。 3. **适用场景**:静态代码块主要用于初始化类级别的资源或者数据,比如数据库连接、日志配置等,这些通常是...

    浅析C#静态类,静态构造函数,静态变量

    值得注意的是,静态构造函数的执行时间早于任何实例构造函数,而且静态构造函数的执行顺序取决于静态成员的引用顺序,而不是代码中定义的顺序。 静态变量,又称为类变量,它们是属于类的,而非类的实例。这意味着...

    C# 静态构造函数使用总结

    7. **执行顺序**:当有类继承关系时,基类的静态构造函数先于派生类的静态构造函数执行。 8. **不可显式调用**:由于静态构造函数由系统自动调用,我们无法在代码中显式地调用它,也无法控制它的执行时机。 9. **...

    C#中构造函数和析构函数用法实例详解

    在C#编程语言中,构造函数和析构函数是两种非常关键的特殊方法,它们分别负责对象的初始化和清理工作。下面将详细讲解这两种方法的原理、定义、使用方法及注意事项。 **一、构造函数** 构造函数是创建类实例时自动...

    简单了解java中静态初始化块的执行顺序

    在实际开发中,了解静态初始化块的执行顺序非常重要,否则可能会导致类的静态变量和静态方法不能正确地初始化。 下面是一个简单的示例代码,用于演示Java中静态初始化块的执行顺序: ```java public class Test1 { ...

    类继承的初始化顺序类,继承的初始化顺序

    初始化块的执行顺序同样遵循它们在类体中出现的顺序。 #### 示例代码分析 为了更好地理解类继承初始化顺序的概念,下面通过一段示例代码来进行详细分析: ```java class Base { public Base() { System.out....

    static 用法

    (但对于C++中的class对象,如果不显式初始化,则无论是否是`static`类型都会自动调用默认构造函数。) **特点:** - **记忆性:** 在两次函数调用之间,局部静态变量能够记住上次函数调用结束时的值。 - **全局性...

    Jave构造函数的继承执行顺序

    问题:子类继承父类,构造函数及公共属性的执行顺序是怎样的?  示例代码 <SPAN xss=removed>public class A extends C {  B b = new B();  static H h = new H();  static { ...

    java 代码块与静态代码块加载顺序

    Java 代码块的执行顺序取决于其所在的位置和上下文环境。 在上面的实例代码中,我们可以看到一个实例代码块 `{ System.out.println("进入代码块"); }`,这个代码块位于 `User` 类的实例变量声明后面。根据 Java ...

    深入理解java构造器机理

    “深入理解Java构造器机理” 在 Java 编程语言中,构造器是一种特殊的方法,用于初始化对象的创建。它是 Java 类中最重要的...了解构造器的机理、执行顺序、作用及与其他概念的区别对于 Java 学习者和开发者非常重要。

Global site tag (gtag.js) - Google Analytics