我在Java
中提出了一些相当常见的问题,但不幸的是,我可以找到答案或资源,为这个问题提供完整的结构化答案。我想知道Java中的(对象)初始化的完整过程是什么,它的顺序是什么?特别是我不确定实例变量何时获得其默认值及其启动值。据我所知,典型类中的初始化顺序即A
为:
class B {
}
class A extends B {
int x = 5;
public A() {
...
}
}
1)静态初始化块(假设它存在)
2)调用super()
构造函数
3)实例启动块(假设它存在)
4)除了构造函数的其余部分
在上面的顺序中,默认初始化(x=0
)和实际初始化(x=5
)是否在列表中?