Java 构造函数中的操作顺序有保证吗?

Java 构造函数中的操作顺序有保证吗?,java,Java,这是一个关于Java默认构造函数行为的问题。在下面的代码中 public class LocalIDSupplier implements IDSupplier { private BiMap<BMTPropertyContainer, String> localid = HashBiMap.create(); private BiMap<String, BMTPropertyContainer> inverse = localid.inverse(); //S

这是一个关于Java默认构造函数行为的问题。在下面的代码中

public class LocalIDSupplier implements IDSupplier {
private BiMap<BMTPropertyContainer, String> localid = HashBiMap.create();
private BiMap<String, BMTPropertyContainer> inverse = localid.inverse();

    //Some methods
}
公共类本地化供应商实现IDSupplier{
private BiMap localid=HashBiMap.create();
private BiMap reverse=localid.inverse();
//一些方法
}
两个实例变量被初始化,但其中一个依赖于另一个,那么对于所有JVM,是否保证默认构造函数将按照声明的顺序初始化这两个变量?显然,可以通过创建显式构造函数来确保它,但编译器对此没有问题。这种类型的依赖项在初始化时是否有问题?

状态

执行实例初始值设定项和实例变量初始值设定项 对于此类,指定实例变量初始值设定项的值 对于相应的实例变量,按从左到右的顺序 它们以文本形式出现在类的源代码中。If 执行任何这些初始值设定项都会导致异常,然后 不再处理其他初始值设定项,此过程完成 突然,有了同样的例外。[……]

美国

执行实例初始值设定项和实例变量初始值设定项 对于此类,指定实例变量初始值设定项的值 对于相应的实例变量,按从左到右的顺序 它们以文本形式出现在类的源代码中。If 执行任何这些初始值设定项都会导致异常,然后 不再处理其他初始值设定项,此过程完成 突然,有了同样的例外。[……]


或者简言之:是,它们的声明顺序是为初始化顺序保留的,否,这种类型的依赖关系在初始化中没有问题:)注意“静态”tho。或者简言之:是,它们的声明顺序是为初始化顺序保留的,否,这种类型的依赖项在初始化中没有问题:)注意“静态”tho。