本篇文章为你整理了Java代码块运行顺序细节阐述(java代码块的作用)的详细内容,包含有java 代码块 java代码块的作用 java代码块的写法有哪两种风格 java代码块的流行风格有哪些 Java代码块运行顺序细节阐述,希望能帮助你了解 Java代码块运行顺序细节阐述。
以下这个例子非常好的阐述了父子类同时存在时静态代码块/静态变量初始化,普通代码块/普通成员变量初始化,构造器之间的具体运行顺序。
注意,在构造器开头,我们可以看作按顺序隐藏了以下两行关键执行步骤:
super();
普通代码块和普通属性的初始化...
具体例子如下,运行顺序在代码注释中以数字括号给出~
public class CodeBlockDetail {
public static void main(String[] args) {
//(1) 进行类的加载
//1.1 先加载 父类 A02 1.2 再加载 B02
//(2) 创建对象
//2.1 从子类的构造器开始
new B02();//对象
class A02 { //父类
private static int n1 = getVal01();
static {
System.out.println("A02的一个静态代码块..");//(2)
System.out.println("A02的第一个普通代码块..");//(5)
public int n3 = getVal02();//普通属性的初始化
public static int getVal01() {
System.out.println("getVal01");//(1)
return 10;
public int getVal02() {
System.out.println("getVal02");//(6)
return 10;
public A02() {//构造器
//隐藏
//super()
//普通代码和普通属性的初始化......
System.out.println("A02的构造器");//(7)
class B02 extends A02 {
private static int n3 = getVal03();
static {
System.out.println("B02的一个静态代码块..");//(4)
public int n5 = getVal04();
System.out.println("B02的第一个普通代码块..");//(9)
public static int getVal03() {
System.out.println("getVal03");//(3)
return 10;
public int getVal04() {
System.out.println("getVal04");//(8)
return 10;
public B02() {//构造器
//隐藏了
//super()
//普通代码块和普通属性的初始化...
System.out.println("B02的构造器");//(10)
以上就是Java代码块运行顺序细节阐述(java代码块的作用)的详细内容,想要了解更多 Java代码块运行顺序细节阐述的内容,请持续关注盛行IT软件开发工作室。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。