class内のメンバ変数ですが、newした時にどのような値になっているか確認してみます。
以下のようなサンプルソースを作成し、コンパイルおよび実行しています。
InitVariable.java (UTF-8 LF)
class InitVariable {
private short s;
private int i;
private double d;
private float f;
private boolean b;
private int[] ai;
private Short Sh;
private Integer I;
private Double D;
private Float F;
private Boolean B;
private String St;
private Integer[] aI;
public static void main(String args[]) {
InitVariable me = new InitVariable();
System.out.println("short : " + me.s);
System.out.println("int : " + me.i);
System.out.println("double : " + me.d);
System.out.println("float : " + me.f);
System.out.println("boolean : " + me.b);
System.out.println("int[] : " + me.ai);
System.out.println("");
System.out.println("Short : " + me.Sh);
System.out.println("Integer : " + me.I);
System.out.println("Double : " + me.D);
System.out.println("Float : " + me.F);
System.out.println("Boolean : " + me.B);
System.out.println("String : " + me.St);
System.out.println("Integer[] : " + me.aI);
}
}
以下、サンプルソースをコンパイルして実行してみます。
$ javac InitVariable.java $ java InitVariable short : 0 int : 0 double : 0.0 float : 0.0 boolean : false int[] : null Short : null Integer : null Double : null Float : null Boolean : null String : null Integer[] : null
上記の出力により、プリミティブな変数(short, int, double)は、0に初期化されているのがわかります。
booleanの場合は、falseに初期化されています。
クラス変数(参照型変数)は、nullに初期化されています。
配列に関しては、両方ともnullに初期化されています。
以上、変数の初期化値に関する調査でした。