public class FF extends DD
{
{
System.out.print("1");
}
FF()
{
super(7);
System.out.print("2");
}
static
{
System.out.print("3");
}
public static void main(String[] args)
{
FF f = new FF();
}
}
class DD
{
DD(int x)
{
System.out.print("4");
System.out.print(x);
}
static
{
System.out.print("5");
}
{
System.out.print("6");
}
}
先把输出的结果写出来吧:5364712
我们知道static代码块是在装载代码的时候就放在代码区的,
然后寻找静态的main方法
无疑问,静态的代码是先执行的,而类FF继承了DD,
所以父类的静态代码先执行再执行子类的静态代码,
这时会输出:53
由于{}代码块优先级大于构造函数,所以先执行父类的{}代码块,
这时输出是:536
下面关键的来了,类之所以成为类的关键:一定要有构造方法。所以最后要形成父类的形态,再子类中的构造器一定要有调用父类构造方法的声明,即super(***);而并非现在就执行了子类的构造方法,可以理解为只是执行了Super()方法所致
这时输出是53647
接下来在一子类中:构造代码块优先于普通代码块
这时输出是5364712
小结:
1.静态的属性和静态的语句块都是在类加载的时候完成,非静态的东西是在创建对象的时候执行的.
2.单个类的初始化顺序如下:
静属->静块->非静属->非静块->构造函数.
3.有继承关系的类的初始化顺序如下:
父静属->父静块->子静属->子静块
->父非静属->父非静块->父构造->子非静属->子非静块->子构造.
比如你要生成一个子类的对象,当然先得知道父类的形态啦,有父才有子嘛。先父类静态代码块,再子类静太代码块,先父非静太代码块,再子类非静态代码块。
分享到:
相关推荐
在 Java 中,代码块的运行顺序是按照以下顺序执行的: 1. 静态代码块(static{})从上到下依次执行 2. main 方法 3. 构造块({})从上到下依次执行 4. 构造器 例如: ```java public class Black { // 构造器 ...
在Java编程语言中,了解代码块的执行顺序对于编写高效且无错的代码至关重要。这里我们将深入探讨Java中的普通代码块(实例初始化块)和静态代码块...希望这个实例和解释能帮助你更好地理解和应用Java的代码块执行顺序。
静态代码块的执行顺序取决于类的加载顺序,通常是在类的加载过程中执行。 在上面的实例代码中,我们可以看到一个静态代码块 `static { ... }`,这个代码块位于 `User` 类的静态域中。根据 Java 语言规范,这个代码...
Java静态代码块作用及执行顺序解析 Java静态代码块是Java语言中的一种特殊代码块,它们在类加载的时候执行,且只执行一次。它们通常用来初始化静态变量、设置静态变量的初始值等。静态代码块的作用域是整个类,而...
这两个静态代码块是在类加载时自动执行的,它们的执行顺序是按照它们在类中的声明顺序来的。 非静态代码块 非静态代码块是 Java 中的一种特殊的代码块,它是非静态的,意思是说它是属于对象的,而不是属于类的。非...
本文将深度剖析几个常见的Java面试题目,包括方法重写、静态代码块和构造方法的执行顺序。 首先,我们来讨论**方法重写(Override)**。在面向对象编程中,子类可以继承父类的属性和方法,有时需要根据自己的需求对...
Java编程语言中,静态代码块、非静态代码块和构造函数是面向对象设计的重要组成部分,它们在类的初始化和对象创建过程中起到关键作用。本文将深入探讨这些概念,以及它们在实际开发中的应用。 首先,我们来理解静态...
1. **Java Applet**: 描述中提到的"applet程序编的"意味着这个游戏可能是一个Java小应用程序(Applet),这是一种可以在网页浏览器中运行的Java程序。Applet需要Java插件,但随着现代浏览器逐步淘汰这种技术,现在更...
/*大体上顺序是这样的:(也可以说是优先级,同一级的按顺序执行) 1 静态变量,静态代码块(类加载时执行,类不加载不执行) ... System.out.println("类Test实例代码块被执行 4"); //实例代码块 } p
`static`代码块,或称静态代码块,是在类初始化过程中执行的一段代码。不同于普通的代码块,静态代码块在类加载时由JVM自动执行,并且只执行一次。这意味着静态代码块常被用来初始化静态变量或执行类级别的操作。多...
在Java编程语言中,代码块是执行特定任务的语句集合,它们可以是局部的、实例的、静态的,或者用于异常处理。本主题将深入探讨Java中的代码块及其在Struts2框架中的应用。 首先,让我们理解Java的四种主要代码块: ...
代码块的执行顺序是指 Java 程序中代码块的执行顺序。它可以分为以下几个步骤: 1. 静态块:静态块最先执行,它的作用范围仅限于类的加载过程中。 2. 构造块:构造块次之,它的作用范围仅限于类的构造过程中。 3....
4. **方法(Method)**:方法是Java中的函数,封装了特定功能的代码块,可被多次调用。了解如何定义、调用和参数传递是提高代码复用性的关键。 5. **数组**:Java中的数组用于存储同类型的数据集合,可以是一维、二...
- 如果父类中有静态代码块,那么在创建子类对象时,父类的静态代码块会先于子类的静态代码块执行。 - 在子类中,如果想要调用父类的构造函数或其他方法,可以使用`super()`关键字。 以上就是关于Java中静态代码块的...
Java中的静态代码块是一种特殊的代码块,它们是在类加载过程中执行的,而不是在对象创建时执行的。静态代码块的执行是自动的,且只执行一次。在Java中,静态代码块的执行是static关键字的结果。 静态代码块的执行...
下面我们将详细探讨Java中代码块的执行顺序,包括静态属性、非静态属性、静态代码块、非静态代码块以及构造函数。 首先,让我们回顾一下结论: 1. 当创建一个类的实例时,首先会执行类中的静态属性和静态代码块,...
在Java编程语言中,了解静态代码块和构造方法的执行顺序是至关重要的,尤其是在处理类的初始化和对象的创建时。下面将详细解释这些概念及其执行逻辑。 首先,静态代码块(也称为静态初始化器)是由`static`关键字...
Java编程语言中有三种类型的代码块,它们分别是普通代码块、构造代码块和静态代码块,每种都有其特定的用途和执行顺序。 1. **普通代码块**: 普通代码块(也称为局部代码块)是在方法或者类的成员变量声明之间...
Java代码块与代码加载顺序原理详解 Java代码块是Java语言中的一种基本结构单元,用于组织代码,控制变量的生命周期和作用域。本文将详细介绍Java代码块的类型、特点、使用方法和加载顺序原理。 一、代码块的类型 ...
2. **只执行一次**:每个类的静态块在整个程序运行期间只执行一次。 3. **按出现顺序执行**:如果一个类中有多个静态块,它们将按照在源代码中出现的顺序依次执行。 ### 静态方法与静态块的区别与联系 虽然静态...