class returntest
{
public static void main(String...args)
{
int a;
System.out.println(a); //Line 1
int b[] = new int[10];
System.out.println(b[1]); //Line 2
}
}
変数が初期化されていない可能性があることを示すコンパイラ エラーが 1 行目で (明らかに) 表示されます。
すべての int 配列要素がデフォルトで 0 に初期化されることはわかっています (したがって、2 行目は正常にコンパイルされます) が、コンパイラが同じロジック (すべての int を 0 に設定する) を通常の (非配列) int 変数に適用できない理由が私の質問です。
コンパイラがそれを行うことを禁止する制限はありますか?