본문 바로가기
描く

[Java] メンバ変数におけるstatic finalとfinalの違い

by 엘리후 2021. 7. 2.

https://qiita.com/Qiitaman/items/743013921e3ed31d948f

[Java] メンバ変数におけるstatic finalとfinalの違い - Qiita

クラスの定数としてよく使われる private static final でstaticをつけることにどのような意味があるのか調査結果。インスタンスごとに名前を付けたい場合などに有用。 メンバ変数におけるstatic finalと...

qiita.com

クラスの定数としてよく使われる

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つだけ持つことになり、メモリが抑えられます。

引用:【Java】private static final とは何ぞやという話 - 16bit!

댓글