Java

Java データ型のデフォルト値(初期値) 超初心者のJavaの勉強

Java icon

Java認定試験の勉強をはじめました。
そんな認定試験で覚えておかなければならないなと感じたデフォルト値(初期値 / Default value)

インスタンス化した直後の要素(宣言したばかり)は、特に指定しない場合はデフォルト値で初期化されるのです。

ということでデフォルト値(初期値) をまとめてみました。

プリミティブ型の値の範囲については下記記事をご確認ください。

初期値早見表

種類デフォルト値
整数int
byte
short
long
0
浮動小数点数float
double
0.0
文字char\u0000
真偽値booleanfalse
参照型String などnull

初期値の確認

本当にそうなるの?と疑ってしまうので、ここからは初期値が正しいのかサンプルコードを元に確認していきたいと思います。

サンプルコード紹介の前に

これから初期値チェック用のサンプルコードを紹介します。お手持ちの環境(Eclipse)などで確認してみてください。環境が整っていない場合、またはサクッと確認したい場合はpaizaでコードを確認してみてください。

整数の初期化

整数のデフォルト値は「0」です。
整数を取り扱う型には int, byte, short,long があります。

int, byte, short, long 初期値チェック用サンプルコード

int, byte, short は整数を扱うので、初期化すると0の初期値が変数に代入されています。

デフォルト値が0っていうのは覚えやすいですね。

※ メソッドに「 int a ; 」 だけで明示的に変数に値を代入しないと「ローカル変数 a が初期化されていない可能性があります」とコンパイルエラーになってしまうので、下の方に書かれているクラスのフィールド内で自動初期化しています。

浮動小数点数の初期化

浮動小数点数のデフォルト値は「0.0」です。
浮動小数点数を取り扱う型には float, double があります。

float, double 初期値チェック用サンプルコード

float, double は浮動小数点数を扱うので、初期化すると0.0の初期値が変数に代入されています。

doubleとfloatの初期値が0.0というのもまだ覚えやすいです。

※ メソッドにfloat a ; だけで明示的に変数に値を代入しないと「ローカル変数 a が初期化されていない可能性があります」とコンパイルエラーになってしまうので、クラスのフィールド内で自動初期化しています。

文字の初期化

文字のデフォルト値は「\u0000」です。
※ちなみに \u0000はnullを表します。
文字を取り扱う型には char があります。Stringは文字を扱いますが文字列となります。

char 初期値チェック用サンプルコード

char は文字を扱いますが初期化するとUnicodeの“\u0000”が初期値として変数に代入されています。

確認しようとSystem.out.println()しても何も表示されないので、真偽値で確認しました。
ついでに興味が湧いたのでintやStringへ型変換して値を見てみました。
intが0になったので、初期値は初期値に変換されるのかと思いましたが、Stringは何も表示されませんでした。
ただ”\u0000″はnullを意味しているので、間違いってことでもないような。

参考サイト:https://www.fileformat.info/info/unicode/char/0000/index.htm

※ メソッドにchar a ; だけで明示的に変数に値を代入しないと「ローカル変数 a が初期化されていない可能性があります」とコンパイルエラーになってしまうので、クラスのフィールド内で自動初期化しています。

真偽値の初期化

真偽値のデフォルト値は「false」です。
真偽値を取り扱う型には boolean があります。

boolean 初期値チェック用サンプルコード

boolean は真偽値を扱うので、初期化するとfalseが初期値として変数に代入されています。

なんとなく初期値はtrueかと思っていたので、意外です。

※ メソッドにboolean a ; だけで明示的に変数に値を代入しないと「ローカル変数 a が初期化されていない可能性があります」とコンパイルエラーになってしまうので、クラスのフィールド内で自動初期化しています。

参照型の初期化

上記の基本データ型(プリミティブ型)とは異なる参照型があります。よく使うのはStringです。
参照型のデフォルト値は「null」です。

String 初期値チェック用サンプルコード

String は参照型なので初期化するとnullが初期値として変数に代入されています。

参照型は奥が深そうですが、私の理解が追いつかないのでここでは深堀しません。すいません。

※ メソッドにString a ; だけで明示的に変数に値を代入しないと「ローカル変数 a が初期化されていない可能性があります」とコンパイルエラーになってしまうので、クラスのフィールド内で自動初期化しています。

COMMENT

メールアドレスが公開されることはありません。 が付いている欄は必須項目です