Javaの配列におけるデフォルト値とは?各データ型の初期値をサンプルコード付きで解説
Javaには、同じ型の要素を固定サイズで連続的に格納できるデータ構造「配列(array)」が用意されています。配列は複数のデータをまとめて管理するために使われますが、実質的には「同じ型の変数を集めたもの」と考えると理解しやすくなります。
ここで重要なのが、配列を生成した際に要素を明示的に初期化しなくても、JVMが自動的にデフォルト値を割り当ててくれるという仕様です。そのため、newで配列を作成した直後でも、未初期化の状態のまま安全に各要素へアクセスできます。
データ型ごとのデフォルト値一覧
主なデータ型のデフォルト値は以下の通りです。
- boolean …
false - byte / short / int …
0 - long …
0L - float …
0.0f - double …
0.0 - char …
'\u0000'(ヌル文字) - オブジェクト参照(String、クラス型など) …
null
サンプルコード
String型・int型・double型・boolean型・オブジェクト型の5種類の配列を生成し、それぞれのデフォルト値を出力して確認してみましょう。
public class Tester {
public static void main(String[] args) {
System.out.print("Default values (String array):");
String strings[] = new String[5];
for (String s : strings) {
System.out.print(s + " ");
}
System.out.println();
System.out.print("Default values (int array):");
int numbers[] = new int[5];
for (int val : numbers) {
System.out.print(val + " ");
}
System.out.println();
System.out.print("Default values (double array):");
double doubles[] = new double[5];
for (double val : doubles) {
System.out.print(val + " ");
}
System.out.println();
System.out.print("Default values (boolean array):");
boolean booleans[] = new boolean[5];
for (boolean val : booleans) {
System.out.print(val + " ");
}
System.out.println();
System.out.print("Default values (Object array):");
Tester testers[] = new Tester[5];
for (Tester val : testers) {
System.out.print(val + " ");
}
}
}
実行結果
Default values (String array):null null null null null Default values (int array):0 0 0 0 0 Default values (double array):0.0 0.0 0.0 0.0 0.0 Default values (boolean array):false false false false false Default values (Object array):null null null null null
注意点:ローカル変数との違い
デフォルト値が自動的に設定されるのは、配列の要素やフィールド(インスタンス変数・static変数)の場合です。一方、メソッド内で宣言したローカル変数は自動初期化の対象外のため、初期化せずに使うとコンパイルエラーになります。「配列の要素は勝手に初期化されるのに、ローカル変数はされない」という違いは初心者がつまずきやすいポイントなので、覚えておくとよいでしょう。
-
JavaScriptのArray.values()メソッドとは?使い方とサンプルコードを徹底解説
JavaScriptのArray.values()メソッドとは? JavaScriptのArray.values()メソッドは、対象の配列に含まれるすべての値を格納したイテレーターオブジェクトを返します。ES2015(ES6)以降で利用可能なこのメソッドは、for...ofループやスプレッド構文([...arr])と組み合わせることで、配列の各要素を効率的に取り出せます。 なお、keys()やentries()がインデックス情報も一緒に返すのに対し、values()は純粋に「値」だけを順番に提供する点が大きな特徴です。 基本構文 arr.values() 引数は不要で、戻り値として新しいArr
-
JavaのArrayIndexOutOfBoundsExceptionとは?発生原因と対処法を解説
配列とインデックスの基本 配列(Array)とは、同じ型の要素を固定サイズで順番に格納するためのデータ構造(コンテナ/オブジェクト)です。配列のサイズ(長さ)は生成時に決定され、後から変更することはできません。 配列内の各要素の位置は「インデックス(添字)」と呼ばれます。Javaの配列は0始まりのため、最初の要素はインデックス0、2番目の要素はインデックス1、というように順に番号が割り当てられます。 配列の各要素へは、「配列名[インデックス]」という形式の式を使ってアクセスします。 System.out.println(myArray[3]); // 1457 が出力される たとえばサイズ7