這可能是一個「重複」,但我不知道如何尋找這個問題...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