付江涛 发表于 2014-5-1 23:30
应该是直接类型转换吧, 1 or 0
想飞的鱼 发表于 2014-5-1 23:45
哦,知道了,原来布尔类型在内存中占1位,大概就是1表示true,0表示false了,感谢回答! ...
付江涛 发表于 2014-5-2 00:57
百度了一下,‘’单个boolean类型在内存中是用int类型表示的,在虚拟机里boolean在编译成字节码时会用int ...
﹊佑雨时杰↘ 发表于 2014-5-2 01:15
boolean 不是只占一个字节码 为什么你说 因此,
boolean a=true;//这个a在JVM中占4个字节即:32位
...
1,单个boolean类型在内存中是用int类型表示的,在虚拟机里boolean在编译成字节码时会用int或byte来表示。false用整数0表示,true用非零整数表示。涉及boolean的操作是用int进行的。boolean数据是当成byte数组进行访问的。
2,JAVA虚拟机中,基本的数据单元是字(word)大小由虚拟机的设计而定。一般为32位。虚拟机的局部变量和操作数栈都是按照字来字义的。
因此,
boolean a=true;//这个a在JVM中占4个字节即:32位。
boolean[] b = new boolean[10];//数组时,每一个boolean在JVM中占一个字节。
int在java中占32位
付江涛 发表于 2014-5-2 00:57
百度了一下,‘’单个boolean类型在内存中是用int类型表示的,在虚拟机里boolean在编译成字节码时会用int ...
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) | 黑马程序员IT技术论坛 X3.2 |