配列の初期値
今回は配列の初期値についてみていきます。
変数の場合
public class sample01 {
public static void main(String[] args) {
int number;
System.out.println(number);
}
}
3行目で変数を宣言し値をいれる箱を準備しました。そして初期化(1回目の代入)をしないで4行目で変数の中身を表示させようとするとエラーになります。つまり変数では必ず宣言したら初期化する必要があります。
※eclipse によるエラー
Exception in thread "main" java.lang.Error: Unresolved compilation problem:
ローカル変数 number が初期化されていない可能性があります
配列の場合
public class sample01 {
public static void main(String[] args) {
int[] array = new int[3];
for(int x : array){
System.out.print(x + ":");
}
}
}
0:0:0:

3行目で配列変数arrayとしてint型の箱を3つ準備しました。そして各箱とも初期化(1回目の代入)をしないで5行目で中身を表示させます。結果をみるとエラーにならず全ての要素で「0」が表示されています。つまり配列では箱を準備した時点で既に初期値が入っています。この初期値はデータ型によって異なります。
初期値
public class sample01 {
public static void main(String[] args) {
byte[] a = new byte[1];
short[] b = new short[1];
int[] c = new int[1];
long[] d = new long[1];
float[ ] e = new float[1];
double[] f = new double[1];
char[] g = new char[1];
boolean[] h = new boolean[1];
System.out.println("byte:" + a[0]);
System.out.println("short:" + b[0]);
System.out.println("int:" + c[0]);
System.out.println("long:" + d[0]);
System.out.println("float:" + e[0]);
System.out.println("double:" + f[0]);
System.out.println("char:" + g[0]);
System.out.println("boolean:" + h[0]);
}
}
byte:0
short:0
int:0
long:0
float:0.0
double:0.0
char:
boolean:false
short:0
int:0
long:0
float:0.0
double:0.0
char:
boolean:false
結果は上記のようになりました。整数型ならば「0」、浮動小数点型ならば「0.0」が初期値になっています。文字型の場合は何も表示されていませんが文字コード「\u0000」のNULL文字が代入されています。そして論理型では「false」が初期値になります。
| データ型 | 初期値 |
|---|---|
| byte , short , int , long | 0 |
| float , double | 0.0 |
| char | null文字 |
| boolean | false |

