kakts-log

programming について調べたことを整理していきます

java static イニシャライザについて


参考

Javaで定数クラスを使用するときに、知っておくと嬉しいかもしれない小技


リファクタリングに関する本を読んでいて、マジックナンバーをシンボリック定数に置き換えるという基本中の基本を学んでいるときに、実装を書くクラスにシンボリック定数を書くのではなく、シンボリック定数のみ存在する定数クラスのメリット、デメリットについて考えていた。 
 メリットとしては、public static final で宣言した定数を一カ所に集めることができるという点が思い浮かんだが、デメリットになる状況というのが思い浮かばなかったので、調べてみたところ、上記のURLに面白いことが書いてあった。
 シンボリック定数を埋め込んだコードは、コンパイル時に文字列として変換されてごにょごにょということで、もやもやしているが、要するにスタティックイニシャライザを用いることで、その変数分の文字列分の容量がコンパイル後のクラスファイルにおいて減らすことが出来るらしい。