`

静态代码的执行顺序

    博客分类:
  • Java
 
阅读更多

    静态代码是和class绑定的,class装载成功就表示执行了你的静态代码了。而且以后不会再走这段静态代码了。

 

1 父类的静态代码块  2 子类的静态代码块  3 父类的构造函数  4 子类的构造函数

 

需要注意的地方:

 

1 子类的  构造函数  默认是  调用  父类的  无参构造函数。

 

2 如果  父类没有无参构造函数,则子类构造函数必须显式调用父类的构造函数。

如父类public Parent(String name){}

此时,子类中应该是这样调用public Child(String str){super(str);}

如父类public Parent()无参型的

此时,子类中应该这样调用public Child(String str){super();//也可以不写,默认的就是会调用super();}

 

一个例子:

public class Parent {
	static String name = "hello";
	{
		System.out.println("parent  block");
	}
	static {
		System.out.println("parent static block");
	}

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

 

class Child extends Parent {
	static String childName = "hello";
	{
		System.out.println("child  block");
	}
	static {
		System.out.println("child static block");
	}

	public Child() {
		System.out.println("child constructor");
	}
}

 

public class StaticIniBlockOrderTest {
	public static void main(String[] args) {
		new Child();
		System.out.println("==============");
		new Child();
	}
}

 

执行结果为:

 

parent static block

child static block

parent block

parent constructor

child block

child constructor

==============

parent block

parent constructor

child block

child constructor

分享到:
评论

相关推荐

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

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

    Java静态代码块作用及执行顺序解析

    Java静态代码块作用及执行顺序解析 Java静态代码块是Java语言中的一种特殊代码块,它们在类加载的时候执行,且只执行一次。它们通常用来初始化静态变量、设置静态变量的初始值等。静态代码块的作用域是整个类,而...

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

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

    Java 普通代码块静态代码块执行顺序(实例讲解)

    这里我们将深入探讨Java中的普通代码块(实例初始化块)和静态代码块的执行顺序,并通过实例来阐述这一概念。 首先,我们需要明白两种类型的代码块: 1. 静态代码块(Static Block):这些代码块在类加载时执行,...

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

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

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

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

    静态代码块

    这种执行顺序体现了Java中静态代码块和实例代码块的执行规则: - 类的静态代码块会在任何实例被创建之前执行,并且只执行一次。 - 子类继承父类时,父类的静态代码块会在子类的静态代码块之前执行。 - 每个类的静态...

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

    静态代码块的执行顺序取决于类的加载顺序,通常是在类的加载过程中执行。 在上面的实例代码中,我们可以看到一个静态代码块 `static { ... }`,这个代码块位于 `User` 类的静态域中。根据 Java 语言规范,这个代码...

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

    这两个静态代码块是在类加载时自动执行的,它们的执行顺序是按照它们在类中的声明顺序来的。 非静态代码块 非静态代码块是 Java 中的一种特殊的代码块,它是非静态的,意思是说它是属于对象的,而不是属于类的。非...

    类加载顺序的代码执行结果

    先静态代码块,然后构造代码块,再是构造方法,然后方法里面的代码块按顺序执行。 子类继承父类的时候,先执行父类的静态代码块,然后子类的静态代码块,然后父类的构造代码块和构造方法,再是子类的构造代码块和...

    类执行顺序小结.doc

    2. **静态代码块与静态变量的初始化**:在类加载时,静态代码块和静态变量会被初始化,它们的执行顺序取决于它们在代码中的出现顺序,而不是它们的定义顺序。这意味着,如果一个类中包含了多个静态代码块或静态变量...

    Android代码块执行顺序分析总结

    Android代码块执行顺序分析总结 Android代码块执行顺序是指在Java中,代码块、变量、方法的加载顺序是一个重要的知识点,对于Android开发者来说尤其重要。本文将详细介绍Android代码块执行顺序的分析总结。 一、...

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

    下面是一个简单的示例代码,用于演示Java中静态初始化块的执行顺序: ```java public class Test1 { static { System.out.println("执行静态初始化块test1..."); } { System.out.println("执行初始化块test1");...

    关于Java中静态代码块的执行浅析

    静态代码块的执行顺序: 1. 静态代码块的执行优先于静态变量的初始化。 2. 静态代码块的执行优先于静态方法的调用。 静态代码块的应用场景: 1. 初始化静态变量:静态代码块可以用来初始化静态变量。 2. 执行静态...

    jsp页面中的代码执行加载顺序介绍.docx

    在开发过程中,理解JSP页面中的代码执行顺序对于确保程序逻辑正确执行至关重要。本文将详细介绍JSP页面中代码的执行加载顺序,帮助开发者更好地理解和优化其应用。 #### 二、JSP页面的基本结构 JSP页面通常包含...

    由浅入深详解Java 类的实例化顺序

    父类的静态变量和静态代码块,按代码先后顺序执行 2. 子类的静态变量和静态代码块,按代码先后顺序执行 3. 父类的成员变量和普通代码块,按代码先后顺序执行 4. 父类的构造方法 5. 子类的成员变量和普通代码块...

    java代码静态检测规则

    1. **逻辑顺序**:这有助于确保`default`分支作为兜底选项被执行。 2. **代码清晰度**:这样的顺序使得代码结构更为清晰,易于理解和维护。 ### equals 中无用的 null 检测 (pmd:UnusedNullCheckInEquals) #### ...

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

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

Global site tag (gtag.js) - Google Analytics