为什么boolean是1/8个字节呢?

解决方案 »

  1.   

    这个是理论上只需要1/8byte就够了(因为可以用0,1表示true,false,1个bit足够,其他bit可以忽视)
    但实际上并不是这样,因为考虑到内存对齐,编译器会自动补齐的
    而到底会占用几个字节,就看编译器编译后用什么类型来表示boolean类型,如果编译成int来表示boolean,那就占用int(4个字节)的空间,如果用byte来表示,那就占用byte(1个字节)的空间
    单纯从内存对齐和最省空间来考虑的话,至少应该占用1个字节(java毕竟不像C/C++那样可以自己规定内存对齐,缺省至少应该会字节来对齐)