静态初始化块、初始化块、构造函数

Java中,静态初始化块、初始化块、构造函数三者都用来完成类的初始化工作,,在实际编程中可以根据不同的需要使用不同的初始化方式,以下为三者的代码格式及Java虚拟机对三者的执行顺序分析。

先看一程序:

package org.zeroup; class Blocks {static {System.out.println("父类静态初始化块");}{System.out.println("父类初始化块");}Blocks() {System.out.println("父类构造函数");}} public class InitailizeBlocks extends Blocks {static {System.out.println("子类静态初始化块");}{System.out.println("子类初始化块");}public InitailizeBlocks() {System.out.println("子类构造函数");}public static void main(String[] args) {new InitailizeBlocks();}}

输出结果:

1

2

3

4

5

6

父类静态初始化块

子类静态初始化块

父类初始化块

父类构造函数

子类初始化块

子类构造函数

分析:

静态代码块在类加载时被执行,而非静态代码(包括初始化代码块和构造函数)在生成对象时才被执行,故父类和子类的静态初始化代码块最早执行;初始化块与构造函数的执行顺序,前者要早于后者。

呼唤你前往另一个地方,过上另一种生活。

静态初始化块、初始化块、构造函数

相关文章:

你感兴趣的文章:

标签云: