Java类中的成员字段是否按声明顺序初始化?

Java类中的成员字段是否按声明顺序初始化?,java,Java,假设我有一个Java类,如下所示: 公共类示例{ 私有Foo-Foo=新Foo(); 私人酒吧=新酒吧(this.foo); } 是否保证bar将始终以Foo作为其构造函数进行实例化,或者是否有可能改为以null进行实例化 Java类成员的初始化顺序是否有保证?是的,有保证 特别是,他说(重点加上): 执行该类的实例初始值设定项和实例变量初始值设定项,将实例变量初始值设定项的值按类的源代码中文本显示的从左到右顺序分配给相应的实例变量。如果执行这些初始值设定项中的任何一个会导致异常,则不会再处理

假设我有一个Java类,如下所示:

公共类示例{
私有Foo-Foo=新Foo();
私人酒吧=新酒吧(this.foo);
}
是否保证
bar
将始终以
Foo
作为其构造函数进行实例化,或者是否有可能改为以
null
进行实例化

Java类成员的初始化顺序是否有保证?

是的,有保证

特别是,他说(重点加上):

  • 执行该类的实例初始值设定项和实例变量初始值设定项,将实例变量初始值设定项的值按类的源代码中文本显示的从左到右顺序分配给相应的实例变量。如果执行这些初始值设定项中的任何一个会导致异常,则不会再处理其他初始值设定项,并且此过程会在该异常的情况下突然完成。否则,继续执行步骤5

  • 这回答了你的问题吗?