`
peonyzzdx
  • 浏览: 591988 次
  • 性别: Icon_minigender_2
  • 来自: 杭州
社区版块
存档分类
最新评论

静态代码块,普通代码块,构造函数的执行顺序

 
阅读更多
相同点:都是在JVM加载类时且在构造方法执行之前执行,在类中都可以定义多个,一般在代码块中对一些static变量进行赋值。
不同点:静态代码块在非静态代码块之前执行(静态代码块—>非静态代码块—>构造方法)。 静态代码块只在第一次new执行一次,之后不再执行,而非静态代码块在每new一次就执行一次。非静态代码块可在普通方法中定义(不过作用不大);而静态代码块不行。
例:


public class PuTong {
	public PuTong() {
		System.out.print("默认构造方法!-->");
	}

	// 非静态代码块
	{
		System.out.print("非静态代码块!-->");
	} // 静态代码块
	static {
		System.out.print("静态代码块!-->");
	}

	public void test() {
		{
			System.out.println("普通方法中的代码块!");
		}
	}



//测试类public class TestClass {    

/** * 区别两次new静态与非静态代码块执行情况 */
	public static void main(String[] args) {
		PuTong c1 = new PuTong();
		c1.test();
		PuTong c2 = new PuTong();
		c2.test();
	}

}


运行输出结果是:




总结执行顺序:
静态代码块!-->非静态代码块!-->默认构造方法!-->普通方法中的代码块!

非静态代码块!-->默认构造方法!-->普通方法中的代码块!

  • 大小: 56.8 KB
分享到:
评论

相关推荐

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

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

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

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

    静态代码块

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

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

    Java 代码块是指在类中使用大括号 `{}` 包围的代码块,这些代码块可以出现在类的任何位置,包括构造函数、静态代码块、实例代码块等。Java 代码块的执行顺序取决于其所在的位置和上下文环境。 在上面的实例代码中,...

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

    在多级继承关系中,静态代码块按照类的加载顺序执行,先加载的类先执行其静态代码块。 例如,在给定的代码中: ```java public class A { static { System.out.print(1); } public A() { System.out.print(2)...

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

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

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

    在上面的例子中,静态代码块将gender变量初始化为“男”,然后执行构造函数。 四、初始化块的运行顺序 静态代码块 -> 构造代码块 -> 构造方法 在Java中,静态代码块的执行顺序是在构造代码块之前,然后执行构造...

    深入浅析Java中普通代码块、构造代码块与静态代码块

    例如,在给定的示例中,静态代码块在程序启动时首先执行,然后是`main`方法,接着是构造代码块(每次创建对象时),最后是构造函数。如果类中还有其他类,如类`A`,那么`A`的静态代码块会在`structure`类的`main`...

    java代码-日常练习33,代码块### 静态代码块 static{代码内容;} 随着类的加载就执行一次 构造器代码块 {代码内容;} 每创建对象就执行一次 局部代码块 {代码内容;} 方法执行一次执行一次

    在Java编程语言中,代码块是程序中一组按顺序执行的语句,它们可以有特定的作用域和执行时机。在日常练习33中,我们关注的是三种不同类型的代码块:静态代码块、构造器代码块和局部代码块。下面将详细讲解这三种代码...

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

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

    Java类的完整构造执行顺序

    而类初始化则是指在类首次被使用时,JVM执行的一系列初始化操作,包括静态变量赋值、静态代码块执行等。 根据题目提供的内容,我们可以总结出Java类构造执行的详细步骤,这些步骤确保了类的正确初始化以及对象的...

    Java静态代码块加载驱动代码实例

    在Java中,静态代码块的执行顺序是:静态成员变量 -> 静态代码块 -> 变量、初始化块 -> 构造函数。静态代码块永远只被加载一次,这使得它非常适合用于加载配置文件、初始化操作等。 在本文中,我们通过示例代码详细...

    举例说明Java中代码块的执行顺序

    下面我们将详细探讨Java中代码块的执行顺序,包括静态属性、非静态属性、静态代码块、非静态代码块以及构造函数。 首先,让我们回顾一下结论: 1. 当创建一个类的实例时,首先会执行类中的静态属性和静态代码块,...

    14_构造函数 视频

    3. **构造函数重载**:一个类可以有多个构造函数,只要它们的参数列表不同(参数个数、类型或顺序),这就是构造函数的重载。这样可以根据需要提供多种初始化方式。 4. **构造函数的调用**:当使用`new`关键字创建...

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

    2. 对象创建时,先执行类中的非静态代码块,再调用构造函数。 通过上述分析,我们可以清楚地看到`static`关键字在Java中是如何被运用的,及其在变量、方法和代码块管理上的独特优势。理解这些概念,对于编写高效、...

    java static块和构造函数的实例详解

    构造函数的执行顺序是按照它们在类中的出现顺序执行的。 Static 块和构造函数的执行顺序 在 Java 中,static 块和构造函数的执行顺序是非常重要的。通常情况下,static 块在类加载时执行,而构造函数在类实例化时...

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

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

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

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

    JAVA程序:静态块代码

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

Global site tag (gtag.js) - Google Analytics