`

JAVA中的静态初始化块、初始化块、构造方法的执行顺序

阅读更多
JAVA中的静态初始化块、初始化块、构造方法的执行顺序

class Test2  
{  
    //构造方法  
    public Test2()  
    {  
        System.out.println("构造方法");  
    }  
    //初始化代码块  
    {  
        System.out.println("初始化代码块");  
    }  
    //静态初始化代码块  
    static   
    {  
        System.out.println("静态初始化代码块");  
    }  
    
    public static void main(String args[])  
    {  
        Test2 t1 = new Test2();  
        System.out.println("----------第二次实例化----------");  
        Test2 t2 = new Test2();  
    }  
} 


结果:
静态初始化代码块
初始化代码块
构造方法
----------第二次实例化----------
初始化代码块
构造方法


当第一次实例化Test2后,执行顺序是:静态初始化代码块>初始化代码块>构造方法

当第二次实例化Test2后,执行顺序是:初始化代码块>构造方法

为什么第二次没有执行静态初始化块呢,因为静态初始化块只会在第一次装入系统的时候运行,当再次实例化的时候就不需要再执行了,因为已经存在了
分享到:
评论

相关推荐

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

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

    java 静态非静态 字段方法 子类父类构造_初始化顺序!

    java 静态_非静态 字段_方法_代码块 子类父类构造_初始化顺序! 三个class 让你清清楚楚 第一个class java代码如下: package initialOrder; class Parent { // 静态变量 public static String p_StaticField...

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

    在Java中,静态初始化块的执行顺序非常重要,因为它会影响类的静态变量和静态方法的初始化。在实际开发中,了解静态初始化块的执行顺序非常重要,否则可能会导致类的静态变量和静态方法不能正确地初始化。 下面是一...

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

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

    Java初始化块Java初始化块.doc

    静态初始化块不能访问非静态成员,包括实例属性和实例方法,因为它们依赖于对象实例,而静态初始化块在类加载时并没有对象存在。 类的初始化顺序如下: - 当Java创建一个对象时,先为对象的所有属性分配内存。 - ...

    java代码的初始化顺序demo

    例如,可能会有一个类包含静态和非静态初始化块,一个构造函数,以及一些静态和实例变量。通过观察它们的执行顺序,你将更好地理解Java的初始化流程。 总之,Java代码的初始化顺序是类加载的必然过程,涉及到静态和...

    Java static静态初始快

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

    java中类的初始化顺序

    2. **静态初始化块的执行**:紧随静态成员变量之后,静态初始化块被执行。 3. **父类静态成员变量及初始化块**:如果当前类继承自另一个类,则父类的静态成员变量和静态初始化块会在子类之前被初始化。 4. **实例...

    Java类继承初始化顺序

    总之,Java类继承初始化顺序涉及到静态和非静态初始化块、构造器的调用以及方法的覆盖。理解这些概念对于编写健壮的、易于维护的Java代码至关重要。在实际编程中,应合理利用继承特性,同时注意避免不必要的复杂性和...

    java程序初始化顺序

    - 静态初始化块(static{}):如果类中存在静态初始化块,该块的代码会在类加载后的准备阶段执行,用于初始化静态变量或执行其他静态设置任务。 - 静态变量的赋值:接着,静态变量会被赋予它们的初始值,这可以是...

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

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

    Java中的静态块初始化块及main方法.doc

    总的来说,Java中的静态块和初始化块是类和对象初始化的关键组成部分,它们在程序运行的不同阶段起作用,提供了灵活的初始化机制。`main`方法作为程序的入口,控制着程序的执行流程。理解这些概念和执行顺序对于编写...

    Java常见笔试、面试题目深度剖析,方法重写详解、静态代码块与构造方法执行顺序问题

    构造方法分为实例构造方法和类构造方法(即静态初始化块)。构造方法的执行顺序如下: 1. 首先,执行父类的静态代码块(如果有)。 2. 然后,执行当前类的静态代码块(如果有)。 3. 接着,调用父类的实例构造方法...

    java面试题静态加载顺序构造方法

    Java中的继承与静态static等的执行先后顺序的面试题 java面试题静态加载顺序构造方法 继承与static 面试题目如下:请写出程序执行完成之后的结果。 package extend; public class X { Y y=new Y(); ...

    java 静态块实例块构造器调用

    Java编程语言中,类的初始化过程涉及到静态块(static block)、实例块(instance block)以及构造器(constructor)。这些块的执行顺序对于理解和编写复杂的Java程序至关重要,特别是在涉及继承关系时。下面我们将...

    java 初始化与方法

    静态初始化块用于在类加载时执行一次的初始化操作,而实例初始化块则在每次创建新对象时执行。这两个块可以用来设置默认值、初始化复杂对象或者执行其他必要的配置。 接下来,我们讨论Java方法。方法是代码的复用...

    学习java静态数据初始化.doc

    ### Java静态数据初始化详解 #### 一、Java静态初始化...通过本篇文章的学习,我们了解了Java中静态初始化的基本概念、执行过程以及如何正确地在程序中使用静态初始化。这对于理解和优化Java应用程序具有重要意义。

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

    在Java编程语言中,了解静态...通过上述分析,我们可以清楚地理解Java中静态代码块与构造方法的执行顺序,这对于编写高效且可靠的代码至关重要。在实际编程中,了解这些基础知识有助于避免潜在的错误并优化代码结构。

    JAVA面试题解惑系列(一)——类的初始化顺序-JAVA程序员JAVA工程师面试必看.pdf,这是一份不错的文件

    在 JAVA 中,类的初始化顺序可以分为四个阶段:静态变量、静态初始化块、变量、初始化块和构造器。其中,静态变量和静态初始化块的初始化顺序是最高的,接着是变量和初始化块,最后是构造器。 在了解类的初始化顺序...

Global site tag (gtag.js) - Google Analytics