クラスの定数としてよく使われる
private static final
でstaticをつけることにどのような意味があるのか調査結果。インスタンスごとに名前を付けたい場合などに有用。
メンバ変数におけるstatic finalとfinalの違い
- staticをつけないと、コンストラクタでの初期化を許すことになる。(=インスタンスごとの定数を意味する)
- staticをつけると、インスタンスではなく、クラスで固有な定数となる。
public class Sample {
private static final String A1 = "A1";
// private static final String A1; はコンパイルエラー
private final String A2;
Sample() {
this.A2 = "A2";
}
public static void main(String[] args) {
new Sample();
}
}
- クラスに一つだけ生成される変数なので、メモリの使用量が抑えられる?
定数などはstaticにしておくことでインスタンスごとではなくクラスに1つだけ持つことになり、メモリが抑えられます。