The Java® Virtual Machine Specification Java SE 8 Edition - 2.3.4. The boolean Type
に書いてあります。
どうやら初期のJava仮想マシンにはboolean
というものが無かったようです。そこで、操作に制限がある「型」としてboolean
を後から追加したと言うことのようです。そのため、下記のようになっているようです。
- 操作(oprate)は
int
として処理されます。(これはchar
、byte
、short
が算術演算でint
に自動昇格すること同じだと思われます。)
boolean
の配列はbyte
の配列のとみなしてアクセスされます。(そのためか、OracleのJava VM実装では、boolean
の配列は一つのboolean
に8bits使うbyte
の配列として実装されてます。)
OracleのJava VMを使用していれば、配列の場合はboolean
は8bitsと言って問題ないでしょう。
では、配列では無い場合、実際の処理はint
と見なして処理されるようで、int
で扱っても問題はないようです。よって、単独のboolean
はint
と同じ32bitsの可能性がありますが、別にbyte
と同じ8bitsでも良さそうなので、どうなのかはわかりません。実装依存の可能性があります。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。