相关疑难解决方法(0)

初始化和实例化的Java顺序

我试图将JVM中的初始化和实例化过程拼凑在一起,但JLS对一些细节有点迟钝,所以如果有人想清除一些细节,我们将不胜感激.这是我迄今为止能够弄清楚的.

初始化

  1. 递归初始化类的静态最终变量及其作为编译时常量的接口.

  2. 退出以文本顺序处理静态块和静态字段的递归.

实例化

  1. 递归初始化作为编译时常量的类的最终实例变量.

  2. 退出递归处理文本顺序中的非静态块和实例字段,在返回时将它们预先添加到构造函数中.


好的,现在提问.

  1. 是按声明顺序处理的接口?

  2. 是在单独的递归堆栈中处理的接口?

    a)如果是,是否在超类之前或之后处理接口?

    b)如果是,我在推断其中一个或其他(接口或超类)在其他编译时常量之前初始化其非编译时常量字段时是正确的.

  3. 调用非默认的super()构造函数在此过程中起什么作用?

  4. 我的任何结论都错了吗?

  5. 我错过了其他任何关键细节吗?

java

43
推荐指数
2
解决办法
2万
查看次数

标签 统计

java ×1