Java で次のクラス用に生成されたコードに違いはありますか。
class A_noConstructor
{
public static int par1;
public static int par2;
void method1(){
}
void method2(){
}
}
class A_wConstructor
{
public static int par1;
public static int par2;
public A_wConstructor(){
}
void method1(){
}
void method2(){
}
}
class B_noConstructor
{
void method1(){
}
void method2(){
}
public static int par1;
public static int par2;
}
class C_noConstructor
{
public static int par1;
void method1(){
}
public static int par2;
void method2(){
}
}
クラス A_noConstructor を B_noConstructor または C_noConstructor で直接置き換えると、par1 と par2 はすべての場合で同じメモリ アドレスになりますか? コンパイラはこれらのクラスに対して異なる方法でソースを解析するため、これらのクラスに対してコンパイラによって生成されるシンボル テーブルに違いはありますか?
編集: void A_wConstructor() が public A_wConstructor(); に変更されました。