我们在java变量中知道的是具有指定类型的位持有者.对于基元,位表示数值.
例如.值为6的字节具有位模式00000110.
所以我想知道,因为布尔值也是一个原语,它的值为true和false的位模式.
在字节码/ VM内部,布尔值表示为字节,位模式00000001为真,00000000为假.但是这些信息并没有像Java开发人员那样购买任何东西,因为你根本无法访问或以其他方式使用Java中的布尔值的数字重新定位,因为Java将它们严格地从数字中分离出来.
编辑:我只是再次查看Java VM Spec,发现我的答案是错误的.与我之前所说的相反,布尔值在字节代码中存储为CONSTANT_Integer结构,这使得它们占用常量池中数据的4个字节,但由于常量池是统一的,因此任何类中最多可以有2个布尔条目.并且由于对常量池的引用总是2字节宽,所以布尔数组在字节代码中每个条目占用2个字节.