`
sulifeng
  • 浏览: 40907 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

关于构造函数和static代码块的执行顺序的小例子

    博客分类:
  • Java
阅读更多
   关于继承和static代码块的小例子,可以帮助理解其调用顺序;

public class Hello {

	public static void main(String[] args) {
		A  a = new B();
		a = new B();
	}
}

class A {
	static {
		System.out.println("A的static块");
	}

	public A() {
		System.out.println("A的构造函数");
	}
}

class B extends A {
	static {
		System.out.println("B的static块");
	}

	public B() {
		System.out.println("B的构造函数");
	}
}




运行结果:
A的static块
B的static块
A的构造函数
B的构造函数
A的构造函数
B的构造函数
分享到:
评论

相关推荐

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

    Static代码块 `static`代码块,或称静态代码块,是在类初始化过程中执行的一段代码。不同于普通的代码块,静态代码块在类加载时由JVM自动执行,并且只执行一次。这意味着静态代码块常被用来初始化静态变量或执行类...

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

    构造代码块的执行顺序是在构造函数之前,且每个对象都要执行一次构造代码块。构造代码块的作用是将类的所有对象初始化成一样的值,以防止构造函数中初始化的变量被修改。 例如: ``` class Person{ String gender;...

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

    静态初始化块是以`static`关键字标识的代码块,它在类被加载到Java虚拟机(JVM)时执行,且只执行一次。静态初始化块常用于设置类级别的变量,或者执行只应执行一次的初始化操作。例如,如果一个类需要在程序运行前...

    java代码块测试

    在Java编程语言中,代码块是执行特定任务的语句集合,它们可以是局部的、实例的、静态的,或者用于异常处理。本主题将深入探讨Java中的代码块及其在Struts2框架中的应用。 首先,让我们理解Java的四种主要代码块: ...

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

    本文详细介绍了类继承中的初始化顺序问题,包括初始化的基本概念、初始化过程中的关键步骤以及如何正确处理基类和子类之间的构造函数调用。理解这些概念对于编写高效、可维护的面向对象程序至关重要。希望通过对这些...

    JAVA程序:静态块代码

    它的执行顺序早于类的非静态初始化块和构造函数。当类第一次被加载时,静态块按照它们在代码中的顺序依次执行。 下面是一个简单的静态块示例,展示了如何使用静态块初始化静态变量: ```java public class ...

    C++和Java初始化顺序的比较代码

    在编程世界中,C++和Java是两种广泛应用的高级编程语言,它们在许多方面有着不同的设计哲学和实现机制。其中一个显著的区别在于它们处理对象初始...同时,合理地利用构造函数和初始化块可以提高代码的清晰度和可读性。

    JAVA面试题解惑系列(1-6).txt

    而实例成员(非静态变量、实例代码块和构造函数)则在每次创建新对象时都会初始化。 ### 五、字符串的创建方式 最后我们来看一下字符串的创建方式及其区别: - **直接赋值**:如 `String str = "abc";` 这种方式...

    Java——对象初始化顺序使用详解

    在上面的例子中,我们已经看到了构造代码块和构造函数的执行顺序:父类的构造代码块先执行,然后是父类的构造函数,最后是子类的构造代码块和构造函数。 四、初始化顺序的总结 1. 首先,执行类的静态初始化,包括...

    C++编程思想习题

    13.4.1构造函数和析构函数的次序 13.4.2名字隐藏 13.4.3非自动继承的函数 13.5组合与继承的选择 13.5.1子类型设置 13.5.2专门化 13.5.3私有继承 13.6保护 13.7多重继承 13.8渐增式开发 13.9向上映射 13.9.1为什么...

    java对象的初始化顺序[参考].pdf

    对于`SuperClass`,它的成员变量`b1`和构造函数`SuperClass()`会被执行,接着是`SubClass`,同样的过程依次进行。 5. **实例化顺序**:在实例化过程中,成员变量首先被初始化,然后是成员函数(如果存在初始化函数...

    JAVA语言面试宝典.doc

    在JAVA中,类的初始化顺序遵循一定的规则,这些规则主要涉及静态成员、非静态成员以及构造函数等几个方面。一般而言,初始化的顺序如下: - **静态成员与静态初始化块**:首先执行的是类中的所有静态成员变量赋值...

    高质量 C++-C 编程指南

    - **示例:类STRING的构造函数与析构函数**:通过具体的例子展示如何编写有效的构造函数和析构函数。 - **不要轻视拷贝构造函数与赋值函数**:强调拷贝构造函数和赋值函数的重要性,特别是在自定义类型的复制时。 - ...

    Java中static、this、super、final用法.docx

    - **注意**:在这个例子中,可以看到`static`初始化块会在类加载时执行,并且在所有构造函数之前执行。这意味着,即使是默认构造函数也会在静态初始化之后被执行。 #### 二、This关键字的使用 `this`关键字用于...

    多线程程序小例子实现

    此外,线程间的通信通常通过wait()、notify()和notifyAll()方法实现,这些方法需要在synchronized块内调用,用于控制线程的执行顺序。 六、示例代码 下面是一个简单的Java多线程示例,展示了如何创建、启动、终止...

    Java对象初始化顺序的使用

    在Java编程语言中,对象初始化顺序是一个非常关键的概念,它涉及到类和对象的生命周期以及成员变量、静态成员变量、初始化块和构造函数的执行次序。理解这些规则对于编写健壮且可预测的代码至关重要。 首先,我们来...

    图文详解Java中class的初始化顺序

    2. 随后初始化`B`类的静态变量,包括`ss2`和`a`,这会间接触发`A`类的静态初始化,打印出"A的static代码块..."和"A的static变量..."。 3. 接下来,`A`类的成员变量`s1`和`s2`被初始化,分别调用`prtString`并打印...

    java基础,面向对象

    - **定义**:静态初始化块是通过`static`关键字声明的一个代码块,其作用是在类加载时执行特定的操作。 - **执行时机**:当第一次使用该类时,静态初始化块会被执行一次,之后即使创建多个该类的对象也不会再次执行...

    java代码与编程题

    `时,会首先执行`FatherClass`的构造函数,然后是`ChildClass`的构造函数,因此输出结果是: ``` FatherClass Create FatherClass Create ChildClass Create ``` 【Java 网络通信——Socket编程】 Java中的Socket...

    C语言解析教程(原书第4版)(美) 凯利.pdf

    13.6 构造函数和析构函数 13.7 面向对象编程和继承 13.8 多态 13.9 模板 13.10 c++的异常 13.11 面向对象编程的优点 13.12 总结 13.13 练习 第14章 从c到java 14.1 输出 14.2 变量和类型 14.3 类和抽象数据类型 14.4...

Global site tag (gtag.js) - Google Analytics