あるプログラマの日記

プログラマのメモ、出来事、考えたこと、勉強とかの雑記

ちょっとだけ気になったこと

同パッケージ内の他の class の static 定数の参照

通常、他の class の static 定数(final 変数)を参照する場合は class名.定数名 ですが同パッケージ内にある他の class の static 定数を参照する場合は class 名の指定がなくてもコンパイルエラーにならない。

動作確認した java のバージョン

$ java -version
java version "1.6.0_17"

優先順位に注意

下の v1 と v2 の結果は?

public class test {
    public static void main(String[] argv) {
        int y = 2;
        int v1 = 5 + (y % 4) == 0 ? 3 : 5;
        int v2 = 5 + ((y % 4) == 0 ? 3 : 5);

        System.out.println("v1 = " + v1);
        System.out.println("v2 = " + v2);
    }
}
int v1 = 5 + (y % 4) == 0 ? 3 : 5;

int v1 = (5 + (y % 4)) == 0 ? 3 : 5;

と同じなので、v1 と v2 は、当然、結果が違う。

$ java test
v1 = 5
v2 = 10

boolean をビット演算子で更新

ある条件で boolean を true に更新する時

  private boolean b;
..
  void checkData(int x) {
..
    b |= x == 3;
..
  }
..
 checkData(3);
..

if 文を使わないで boolean をビット値のように |= で true に更新できる。