long v = 0xFFFFFFFF は -1

Javaで、以下の変数 v を定義すると、その値は -1 になる。

long v = 0xFFFFFFFF;

一瞬、「え?」となったが、右辺は定数であり int と解釈され -1 となり、それが long に拡張されている模様。下位32bitがたっている long 型の変数が要るときは long 値であることを明示する必要がある。

long v = 0xFFFFFFFFL;