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に初期化されています。
以上、変数の初期化値に関する調査でした。