「定数」は、変数の特別なものです。変数は値を書き換えることができますが、定数は一度値や参照を設定すると、変更することができません。
定数は、クラス内で固定値として使いたい値などで利用します。
Javaでは変数を宣言する時に「final」修飾子を付けると定数にできます。また、Javaでは定数を大文字で書きます。
final int I = 0; final String S = "定数";
定数にした値や参照は変更することができません。
final int I = 0; I = 1; // エラー final String S = "定数"; S = "書き換え"; // エラー
参照型の定数の場合、参照を書き換えることはできませんが、参照先のフィールドや、配列の値といったものは書き換えることができます。
┏オブジェクト━┓ ┃ ┃ final オブジェクト OBJ = ┃ ┃public ┃ ┠─○フィールド ┗━━━━━━━┛ | | | ここは書き換え不可 ここは書き換え可能
final int[] I_ARR = {0, 1, 2}; I_ARR[0] = 9; System.out.println(I_ARR[0] + " " + I_ARR[1] + " " + I_ARR[2]); // 「9 1 2」と出力