風邪でダウン

今日は一日風邪でダウンしてました。
久々に熱出たな〜。
朝から病院行って薬飲んでねてた。

少しJavaネタを
Javaで変更されない変数(定数)を宣言する場合に
finalを付加すると思いますが、こうするとコンパイル時に
参照している箇所はコンパイラーがfinal宣言の実際の値に
置き換えます。

static final String FINALSTR = "a";
String str = FINALSTR;

private void test() {
if (str.equals("a")) {
System.out.println("equal");
} else {
System.out.println("not equal");
}
}

上の場合変数strにfinal宣言の値を代入してるところが
コンパイル後のclassファイルでは
String str = "a";
となります。

finalの値を参照している場合は宣言している部分だけ
変更しても意味がなく、全ての参照クラスの再コンパイル
必要になります。
jadなどで逆コンパイルしてみてください。


okuyama version 0.3.2 をリリースしました。
http://sourceforge.jp/projects/okuyama/