`

静态块与构造

 
阅读更多

下面程序答案

public class B

{

    public static B t1 = new B();

    public static B t2 = new B();

    static

    {

        System.out.println("构造块");

    }

    {

        System.out.println("静态块");

    }

    public static void main(String[] args)

    {

        B t = new B();

    }

}

 

说实话:我开始以为是:静态块 构造块 构造块 构造块

正确答案是 构造块 构造块 静态块  构造块

 

答案分析

如果没有 B t=new B()

类会有一个初使化顺序,类自身初使化顺序是定义顺序,从上至下

初使化程序: t1 = new B(); ----> t2 = new B();--->静态块

后面多一个 B t=new B() 最后构造 

 

类的加载过程:

 

 

  

 

分享到:
评论

相关推荐

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

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

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

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

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

    本文将深度剖析几个常见的Java面试题目,包括方法重写、静态代码块和构造方法的执行顺序。 首先,我们来讨论**方法重写(Override)**。在面向对象编程中,子类可以继承父类的属性和方法,有时需要根据自己的需求对...

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

    特别是当涉及到静态域(静态变量)、非静态域(实例变量)、静态块、非静态块以及构造函数时,明确它们的初始化顺序有助于避免潜在的编程错误。 根据题目提供的内容,我们将重点讨论这些概念以及它们之间的相互关系...

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

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

    Java的静态代码块、非静态代码块、构造函数

    Java编程语言中,静态代码块、非静态代码块和构造函数是面向对象设计的重要组成部分,它们在类的初始化和对象创建过程中起到关键作用。本文将深入探讨这些概念,以及它们在实际开发中的应用。 首先,我们来理解静态...

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

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

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

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

    JAVA程序:静态块代码

    在Java编程语言中,静态块(Static Block)是一种特殊的代码段,用于初始化类级别的静态变量。它是类加载时执行的,且只执行一次。在理解静态块之前,我们需要先了解类加载的过程和静态变量的概念。 静态变量是属于...

    【独家】【笔面试知识要点】16.OOP与OBP构造函数静态块1

    总的来说,理解这些概念对于Java程序员来说至关重要,无论是面试还是实际开发,都需要对OOP、OBP、构造函数、静态块以及组件有深入的认识。通过掌握这些知识点,可以更好地设计和实现复杂的软件系统,提高代码的...

    Java:静态代码块和构造函数执行顺序

     1 静态变量,静态代码块(类加载时执行,类不加载不执行)  2 实例变量,实例代码块(创建对象时才执行,不创建对象不执行)  3 构造函数,(创建对象时执行完2后再执行构造函数,不管构造函数是public还是private...

    Java 中普通代码块,构造代码块,静态代码块区别及代码示例

    Java编程语言中有三种类型的代码块,它们分别是普通代码块、构造代码块和静态代码块,每种都有其特定的用途和执行顺序。 1. **普通代码块**: 普通代码块(也称为局部代码块)是在方法或者类的成员变量声明之间...

    Java基础练习题练习下静态块的用处

    2. **与构造器的区别**:静态块只在类加载时执行,而构造器在每次创建类的实例时执行。静态块适用于类级别的初始化,而构造器适用于对象级别的初始化。 通过上述知识点,我们可以理解Java中的静态块是类加载过程中...

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

    Java编程语言中,静态块(static block)和初始化块(instance initialization block)是两种特殊的代码块,它们在程序运行的不同阶段被执行,对于类和对象的初始化有着重要作用。同时,`main`方法是Java程序的入口...

    java中的静态代码块、构造代码块、构造方法详解

    构造代码块是类中独立的代码块,不包含在任何方法内,但与构造方法紧密关联。当创建类的新实例时,Java会将构造代码块的代码插入到每个构造方法的开始。这是为了在实例化对象时执行共享的初始化逻辑,减少代码重复...

    构造代码块和静态代码块的执行时机.xmind

    构造代码块和静态代码块的执行时机

    静态代码块

    静态代码块与实例代码块(非静态代码块)的主要区别在于它们的执行时机以及作用范围。 - **执行时机**:静态代码块在类加载时执行,而实例代码块则是在创建对象时执行。 - **作用范围**:静态代码块作用于整个类的...

    java静态代码块与非静态代码块.doc

    Java 静态代码块与非静态代码块 Java 中的静态代码块和非静态代码块是两个重要的概念,它们在 Java 中的应用非常广泛。下面我们来详细介绍这两个概念。 静态代码块 静态代码块是 Java 中的一种特殊的代码块,它是...

    Java构造代码块,静态代码块原理与用法实例分析

    Java构造代码块、静态代码块原理与用法实例分析 Java构造代码块和静态代码块是Java中两种特殊的代码块,它们的运行机制和应用场景不同,下面将详细介绍Java构造代码块和静态代码块的原理、用法和注意事项。 一、...

Global site tag (gtag.js) - Google Analytics