
Contents
型毎の初期値
Javaで変数を宣言した時に、初期値は何が入っているのか?
各型毎の初期値についてまとめました。
型 | 初期値 |
boolean | false |
int | 0 |
String | null |
Object | null |
Integer | null |
Boolean | null |
char | ‘\u0000’ |
byte | 0 |
short | 0 |
long | 0 |
float | 0.0 |
double | 0.0 |
int[] | null |
String[] | null |
プリミティブ型は 0 か false
参照型は null
配列はプリミティブ型、参照型かかわらず null
が入っています。

コード書いて実際に確かめてみた
AndroidStudioのテストアプリをサクッと自作して、
アプリが起動した時に、それぞれの変数がログに出力されるようにコードを記載してみました。
ソースコードはこんな感じになります。
public class MainActivity extends AppCompatActivity {
String TAG = "Initial Value Test";
/* 宣言しただけの変数 */
boolean primBoolTest; /* boolean プリミティブ型 */
int primIntTest; /* int プリミティブ型 */
String stringTest; /* String 参照型 */
TestClass testClass; /* TestClass 参照型 */
Integer integerTest; /* Integer 参照型 */
Boolean boolTest; /* Boolean 参照型 */
char primCharTest; /* char プリミティブ型 */
byte byteTest; /* byte プリミティブ型 */
short shortTest; /* short プリミティブ型 */
long longTest; /* long プリミティブ型 */
float floatTest; /* float プリミティブ型 */
double doubleTest; /* double プリミティブ型 */
int[] arrayTest; /* int[] プリミティブ型配列 */
String[] ArrayTest; /* String[] 参照型配列 */
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
protected void onResume() {
super.onResume();
Log.i(TAG, "boolean initial value : " + primBoolTest);
Log.i(TAG, "int initial value : " + primIntTest);
Log.i(TAG, "String initial value : " + stringTest);
Log.i(TAG, "Object initial value : " + testClass);
Log.i(TAG, "Integer initial value : " + integerTest);
Log.i(TAG, "Boolean initial value : " + boolTest);
Log.i(TAG, "char initial value : " + primCharTest);
Log.i(TAG, "byte initial value : " + byteTest);
Log.i(TAG, "short initial value : " + shortTest);
Log.i(TAG, "long initial value : " + longTest);
Log.i(TAG, "float initial value : " + floatTest);
Log.i(TAG, "double initial value : " + doubleTest);
Log.i(TAG, "int[] initial value : " + arrayTest);
Log.i(TAG, "String[] initial value : " + ArrayTest);
}
}
メンバ変数として、各型の変数を宣言しておき、
画面表示前に呼ばれるonResume()時にログを出力してみました。
以下が実際に出力されたログです。
I/Initial Value Test: boolean initial value : false
I/Initial Value Test: int initial value : 0
I/Initial Value Test: String initial value : null
I/Initial Value Test: Object initial value : null
I/Initial Value Test: Integer initial value : null
I/Initial Value Test: Boolean initial value : null
I/Initial Value Test: char initial value : ��
I/Initial Value Test: byte initial value : 0
I/Initial Value Test: short initial value : 0
I/Initial Value Test: long initial value : 0
I/Initial Value Test: float initial value : 0.0
I/Initial Value Test: double initial value : 0.0
I/Initial Value Test: int[] initial value : null
I/Initial Value Test: String[] initial value : null
char型だけユニコードが格納されているので、文字化けしているように見えています。

以上Javaにおいての変数の初期値についてでした。
開発の参考になれば幸いです。
ご精読ありがとうございました!!