`

java中构造方法、普通块、静态代码块、构造块的执行顺序

阅读更多

静态块、构造块、构造方法、普通块

静态块:在类中用"{}"括号括起来,并在括号前用static修饰的块为静态块;静态块在类加载时候被调用,并且在整个生命中只调用一次

同步块

使用synchronize关键字修饰,并使用"{}"括起来的代码片段.它表示在同一时间只能有一个线程进入到该方法块中,

是一种多线程保护机制.

构造块:在类中直接使用"{}"括起来的代码被称为构造块;

构造方法:在对象被创建时调用;

 普通块:在方法名后面使用“{}”括起来的代码,普通块只有在调用方法名时才会被调用

public class ParentClass {
	static{
		System.out.println("我是父类的static代码块");
	}
	{
		System.out.println("我是父类的普通代码块");
	}
	public ParentClass(){
		System.out.println("我是父类的构造方法");
	}
	public static void method(){
		System.out.println("被static修饰的静态方法");
	}
        public static void main(String[] args) {
		ParentClass parentClass = new ParentClass();
		parentClass.method();
	}
}
结果为:
    我是父类的static代码块
    我是父类的普通代码块
    我是父类的构造方法
    被static修饰的静态

 

public class ChildrenClass extends ParentClass {

	static{
		System.out.println("我是子类的static代码块");
	}
	{
		System.out.println("我是子类的普通代码块");
	}
	
	public ChildrenClass(){
		System.out.println("我是子类的构造方法");
	}
	public static void method(){
		System.out.println("子类被static修饰的静态方法");
	}
	@SuppressWarnings("static-access")
	public static void main(String[] args) {
		ParentClass parentClass = new ChildrenClass();
		parentClass.method();
	}
}
结果为:
     我是父类的static代码块
     我是子类的static代码块
     我是父类的普通代码块
     我是父类的构造方法
     我是子类的普通代码块
     我是子类的构造方法
     子类被static修饰的静态方法

 

分享到:
评论

相关推荐

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

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

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

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

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

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

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

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

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

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

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

    这个非静态代码块是在创建对象时自动执行的,它的执行顺序是在构造方法中的某个点。 静态代码块与非静态代码块的区别 静态代码块和非静态代码块的主要区别是它们的执行时机。静态代码块是在类加载时自动执行的,而...

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

    在继承关系中,静态代码块的执行顺序是:父类静态代码块 -> 子类静态代码块 -> 父类非静态代码块 -> 父类构造方法 -> 子类非静态代码块 -> 子类构造方法。 静态代码块和静态方法的区别在于:静态代码块是自动执行的...

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

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

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

    在 Java 语言中,代码块和静态代码块的加载顺序是严格按照类的加载顺序执行的。具体来说,类的加载顺序如下: 1. 父类静态代码块 2. 子类静态代码块 3. 父类实例代码块 4. 子类实例代码块 在上面的实例代码中,...

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

    Java构造代码块和静态代码块是Java中两种特殊的代码块,它们的运行机制和应用场景不同,下面将详细介绍Java构造代码块和静态代码块的原理、用法和注意事项。 一、局部代码块 局部代码块是指在某个特定的范围内定义...

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

    静态块是Java类中用于初始化静态变量的代码块。它们在类加载时执行,且只执行一次。无论创建多少个类的实例,静态块只会被执行一次。这是因为在Java中,类的静态成员是与类相关的,而非类的实例。 ```java public ...

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

    Java编程语言中有三种类型的代码块:普通代码块、构造代码块和静态代码块,它们各自在不同的场景下发挥着重要作用。下面将详细解释这三种代码块的特性、执行顺序以及它们在程序运行过程中的作用。 1. **普通代码块*...

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

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

    静态代码块

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

    Java基础之代码块.docx

    在上面的代码中,静态代码块从上到下依次执行,接着是 main 方法,最后是构造块和构造器。 Java 中的代码块有三种:普通语句块、构造块和静态块,每种代码块的执行时机不同,需要根据实际情况选择合适的代码块类型...

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

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

    java中的静态代码块、构造代码块、构造方法详解

    在Java编程语言中,类的初始化过程涉及到几个关键的概念,包括静态代码块、构造代码块和构造方法。这些概念在创建对象和管理类的状态时起着至关重要的作用。以下是关于这三个概念的详细解释: 1. **静态代码块**: ...

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

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

    java中构造方法和方法全面解析.pdf

    构造方法主要用于初始化类的新实例,而普通方法则是完成特定任务的代码块。 构造方法的关键特性包括: 1. **名称匹配**:构造方法必须与定义它的类的名称完全相同,不包括任何返回类型。 2. **无返回类型**:构造...

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

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

Global site tag (gtag.js) - Google Analytics