`
advance0683
  • 浏览: 50515 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

Java中静态初始化块、初始化块和构造方法的执行过程

阅读更多

Java中静态初始化块、初始化块和构造方法的执行过程

 

例子:

package classmate;

public class Team {

	public static void main(String[] args) {
		Person p = new Person();
		System.out.println("------------------------------");
		Person p1 = new Person();
	}

}

class Person{
	//构造方法
	public Person(){
		System.out.println("Person Constructor...");
	}
	
	//初始化代码块
	{
		System.out.println("Person Initialization Block...");
	}
	
	//静态代码块
	static {
		System.out.println("Person Static Block...");
	}
}

   

   运行结果:

  

Person Static Block...
Person Initialization Block...
Person Constructor...
------------------------------
Person Initialization Block...
Person Constructor...

   

 

   当创建第一个Person对象p的时候,执行顺序应该是 静态代码块 >  初始化代码块  > 构造方法,但是当创建第二个Person对象p1的时候,执行顺序就变成了 初始化代码块  > 构造方法。原因很简单,因为 静态代码块只会在类第一次装入系统中才会执行,以后类在装入系统的时候,它就不执行了。

 

 

 

 

 

分享到:
评论

相关推荐

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

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

    Java初始化块Java初始化块.doc

    静态初始化块不能访问非静态成员,包括实例属性和实例方法,因为它们依赖于对象实例,而静态初始化块在类加载时并没有对象存在。 类的初始化顺序如下: - 当Java创建一个对象时,先为对象的所有属性分配内存。 - ...

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

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

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

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

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

    在Java中,静态初始化块的执行顺序非常重要,因为它会影响类的静态变量和静态方法的初始化。在实际开发中,了解静态初始化块的执行顺序非常重要,否则可能会导致类的静态变量和静态方法不能正确地初始化。 下面是一...

    Java static静态初始快

    3. **静态初始化块与构造函数**:静态初始化块和构造函数有明显的区别。构造函数是在创建对象时执行,而静态初始化块是在类加载时执行。两者不会相互影响,它们各自负责不同的初始化任务。 4. **多线程环境**:如果...

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

    总的来说,Java中的静态块和初始化块是类和对象初始化的关键组成部分,它们在程序运行的不同阶段起作用,提供了灵活的初始化机制。`main`方法作为程序的入口,控制着程序的执行流程。理解这些概念和执行顺序对于编写...

    java代码的初始化顺序demo

    实例初始化块(非静态初始化块)在这个过程中执行,用于初始化实例变量。 4. **构造函数**: 构造函数是创建新对象时必须调用的方法,它负责设置对象的初始状态。`init`文件可能包含了各种构造函数的实现,展示...

    java 初始化与方法

    静态初始化块用于在类加载时执行一次的初始化操作,而实例初始化块则在每次创建新对象时执行。这两个块可以用来设置默认值、初始化复杂对象或者执行其他必要的配置。 接下来,我们讨论Java方法。方法是代码的复用...

    java中类的初始化顺序

    2. **静态初始化块的执行**:紧随静态成员变量之后,静态初始化块被执行。 3. **父类静态成员变量及初始化块**:如果当前类继承自另一个类,则父类的静态成员变量和静态初始化块会在子类之前被初始化。 4. **实例...

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

    构造方法分为实例构造方法和类构造方法(即静态初始化块)。构造方法的执行顺序如下: 1. 首先,执行父类的静态代码块(如果有)。 2. 然后,执行当前类的静态代码块(如果有)。 3. 接着,调用父类的实例构造方法...

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

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

    Java类继承初始化顺序

    总之,Java类继承初始化顺序涉及到静态和非静态初始化块、构造器的调用以及方法的覆盖。理解这些概念对于编写健壮的、易于维护的Java代码至关重要。在实际编程中,应合理利用继承特性,同时注意避免不必要的复杂性和...

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

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

    学习java静态数据初始化.doc

    ### Java静态数据初始化详解 #### 一、Java静态初始化...通过本篇文章的学习,我们了解了Java中静态初始化的基本概念、执行过程以及如何正确地在程序中使用静态初始化。这对于理解和优化Java应用程序具有重要意义。

    java程序初始化顺序

    - 静态初始化块(static{}):如果类中存在静态初始化块,该块的代码会在类加载后的准备阶段执行,用于初始化静态变量或执行其他静态设置任务。 - 静态变量的赋值:接着,静态变量会被赋予它们的初始值,这可以是...

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

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

    Java初始化块及执行过程解析

    静态初始化块也是类的静态成员,仍然需要遵循静态成员不能访问非静态成员的规则,包括不能访问实例变量和实例方法。 在 Java 中,初始化块执行的时候会一直上溯到 java.lang.Object 类,先执行 Object 的初始化块,...

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

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

Global site tag (gtag.js) - Google Analytics