java中的 boolean 在内存中占多少字节?
java中的 boolean 在内存中占多少字节?
[解决办法]
1个字节吧
[解决办法]
就一个。。
[解决办法]
主类型 大小 最小值 最大值 封装器类型
boolean 1 位 - - Boolean
char 16 位 Unicode 0 Unicode 2 的16 次方-1 Character
byte 8 位 -128 +127 Byte(注释①)
short 16 位 -2 的15 次方 +2 的15 次方-1 Short(注释①)
int 32 位 -2 的31 次方 +2 的31 次方-1 Integer
long 64 位 -2 的63 次方 +2 的63 次方-1 Long
float 32 位 IEEE754 IEEE754 Float
double 64 位 IEEE754 IEEE754 Double
^_^把别人的答案复制来
[解决办法]
boolean占1个bit,1/8个字节。
[解决办法]
对 boolean 只要0 1表示false true 一个位就行啦
[解决办法]
4楼正确
[解决办法]
boolean占1个bit,1/8个字节。
[解决办法]
1个bit
[解决办法]
sun's Data Types introduction:
byte: The byte data type is an 8-bit signed two's complement integer
short: The short data type is a 16-bit signed two's complement integer
int: The int data type is a 32-bit signed two's complement integer
long: The long data type is a 64-bit signed two's complement integer
float: The float data type is a single-precision 32-bit IEEE 754 floating point
double: The double data type is a double-precision 64-bit IEEE 754 floating point.
char: The char data type is a single 16-bit Unicode character
boolean: The boolean data type has only two possible values: true and false.
Use this data type for simple flags that track true/false conditions. This data type represents one bit of information,
but its "size" isn't something that's precisely defined.
我看你们所说的,我吓了一跳,我记得boolean就2个字面值true/false,难道java的基本类型变了?
我刚刚看了一下文当,文档说得很清楚嘛. This data type represents one bit of information, but its "size" isn't something that's precisely defined.
这个数据类型表现为1bit的信息,但是他的大小不是明确指定的.
is和represents完全是2回事嘛!,可以认为他是一个1bit的,但是他的大小不是明确指定的
to 5楼的
对 boolean 只要0 1表示false true 一个位就行啦
哥们你说的是C++吧,反正我在Java中没见过,用1表示true 0表示false的
[解决办法]
就只有一位
[解决办法]
The boolean data type has only two possible values: true and false. Use this data type for simple flags that track true/false conditions. This data type represents one bit of information, but its "size" isn't something that's precisely defined.
[解决办法]
理解了许多,谢谢上面的讨论
[解决办法]
一位就可以了,即0和1
[解决办法]
根据我---一个刚学java的人---所知
boolean占1byte.
[解决办法]
不知道,我不发表意见。
[解决办法]
我对上面的说法置疑
(1)在虚拟机里boolean在编译成字节码时会用int或byte来表示。false用整数0表示,true用非零整数表示。涉及boolean的操作是用int进行的。boolean数据是当成byte数组进行访问的。
(2)JAVA虚拟机中,基本的数据单元是字(word)大小由虚拟机的设计而定。一般为32位。虚拟机的局部变量和操作数栈都是按照字来字义的。
(以上摘自《深入JAVA虚拟机》(第二版))
因此我觉得和虚拟机有关。一般为32位。
以上说法,和大家讨论。。。
[解决办法]
一个字节!
[解决办法]
“its "size" isn't something that's precisely defined. ”
这句话学问很大,在介绍boolean的时候,首先提到是“This data type represents one bit of information”,也就是说boolean使用了一个比特的信息,通常我们会猜测,编译器会给一个boolean变量
一个字节的内存,但只使用最后一个比特位,但如果是这样的话,那位什么sun在文档里不直接将boolean变量
定义成一个字节,而是给出上面的一段含义暧昧的话呢?
简单点讲,编译器对boolean变量进行了优化,在一个boolean变量情况下,编译器会给此变量安排一个字节的
内存,但在多个boolean的情况下时,编译器会将多个变量安排在一个字节里
[解决办法]
boolean 类型所占存储空间的大小没有明确指定,仅定义为能够取字面值true 或 false
[解决办法]
同意上面的上面
========================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================