这可能是一个“重复”,但我不知道如何寻找这个问题...Java的非静态成员变量初始化
我在声明中初始化非静态成员变量行:
public class A
{
private B b = new B();
...
}
我这样做,而不是初始化的默认构造函数内部的变量:
public class A
{
private B b;
public A()
{
b = new B();
}
...
}
这两者之间是否有区别,除了(可能)前者不是“ANSI Java”或类似的东西?
我得到了两个不同的字节码(即两个不同的'class'文件),这导致我相信可能存在运行时差异。
所以我想知道在运行期间我是否有任何理由期待有什么不同。
谢谢
“会创建第二个构造函数”?这到底是什么意思呢? –
@barakmanos样本附 – MariuszS