Blog

  • 首页

  • 关于

  • 标签

  • 分类

  • 归档

  • 搜索

Java程序初始化顺序

发表于 2020-02-22 分类于 Java面试 阅读次数:
本文字数: 617

Java程序初始化顺序

首先来看一段代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
class a{
static b b1 = new b();
static{
System.out.println("1");
}
a(){
System.out.println("2");
}
}
public class b extends a{
static{
System.out.println("3");
}

b(){
System.out.println("4");
}
public static void main(String[] args) {
System.out.println("====");
b b = new b();
}
}

输出顺序应该是什么样的呢?

1
2
3
4
5
6
7
2
4
1
3
====
2
4

根据上图可知:在程序初始化时,先会初始化父类中的静态变量和静态的代码块。然后再是子类中的静态变量和静态代码块。
然后在创建对象的时候,会先调用父类的构造函数(默认调用super()函数)


------ 已触及底线感谢您的阅读 ------
麻辣香锅不要辣 微信支付

微信支付

  • 本文作者: 麻辣香锅不要辣
  • 本文链接: https://http://ybhub.gitee.io/2020/02/22/Java程序初始化顺序/
  • 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
# Java面试
@mapperScan
  • 文章目录
  • 站点概览
麻辣香锅不要辣

麻辣香锅不要辣

21 日志
11 分类
20 标签
GitHub 简书
  1. 1. Java程序初始化顺序
© 2019 – 2020 麻辣香锅不要辣 | 站点总字数: 20.4k字
|
0%