为什么java中的boolean长度是一个bit 为什么java中的boolean长度是一个bit,一个字节占8bit,那剩下的7bit怎么办?是不是数据类型不能从一个字节的中间开始。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 boolean是占1个字节,即8bit,怎么变成长度是1bit了? 1个字节,但只有1个bit有作用。在汇编里面也似这样啊! 不是一个bit。"虚拟机没有给boolean(布尔)类型设置单独的指令。boolean型的数据是由integer指令,包括integer返回来处理的。boolean型的数组则是用byte数组来处理的。"声明一个布尔变量,再赋值为true,用javap命令显示字节码为:0: iconst_11: istore_1所以应该是4个字节。 字节是系统分配内存的最小单位。boolean是分配一个字节,但是只有一个bit有用,其他无效置0 看具体实现吧,有些貌似是判断这个byte不为0,都算true JDK 中src.zip里DataInputStream的源码 public final boolean readBoolean() throws IOException { int ch = in.read(); if (ch < 0) throw new EOFException(); return (ch != 0); } 此回复为自动发出,仅用于显示而已,并无任何其他特殊作用楼主【lanseqiuyu】截止到2008-07-03 21:10:27的历史汇总数据(不包括此帖):发帖的总数量:6 发帖的总分数:230 结贴的总数量:2 结贴的总分数:150 无满意结贴数:0 无满意结贴分:0 未结的帖子数:4 未结的总分数:80 结贴的百分比:33.33 % 结分的百分比:65.22 % 无满意结贴率:0.00 % 无满意结分率:0.00 % 楼主该结一些帖子了 正解单个布尔类型变量使用 int 值来表示,布尔数组采用 byte 数组来表示。true 使用 int 常量 1 表示,false 使用 int 常量 0 表示。3 楼的字节码指令就很能说明问题,在编译后 JVM 采用 int 数据对布尔值进行处理。再看一下 boolean 数组的字节码,在存储时 JVM 指令使用的是 bastore 而不是 istore,因此可以看出 boolean 数组内部使用的是 byte 类型。 求助!在线等!JNI调DLL或者用jacob 开发其于SAX方式的接口文件读取类,读取之后将结构存放在数据库中; 一个多线程的程序 安装JBUILDER的系统需求是什么样的呢? CPU C1.0;内存128M;硬盘20G 不知道可否安装JB,谢谢! 在线等答案 一个动态显示问题,GUI高手请进!(有源码) 想编游戏 怎么做到这个! B/S结构中报表的处理 通过WWW.HAOSHUA.COM 成功访问GOOGLE sun 的JMF(Java Media Framework)可以播放视频吗? 请教如何实现不允许多人同时调用同一个实例? 怎样随机读取一个文件的单个内容
0: iconst_1
1: istore_1所以应该是4个字节。
boolean是分配一个字节,但是只有一个bit有用,其他无效置0
int ch = in.read();
if (ch < 0)
throw new EOFException();
return (ch != 0);
}
楼主【lanseqiuyu】截止到2008-07-03 21:10:27的历史汇总数据(不包括此帖):
发帖的总数量:6 发帖的总分数:230
结贴的总数量:2 结贴的总分数:150
无满意结贴数:0 无满意结贴分:0
未结的帖子数:4 未结的总分数:80
结贴的百分比:33.33 % 结分的百分比:65.22 %
无满意结贴率:0.00 % 无满意结分率:0.00 %
楼主该结一些帖子了
正解单个布尔类型变量使用 int 值来表示,布尔数组采用 byte 数组来表示。true 使用 int 常量 1 表示,false 使用 int 常量 0 表示。3 楼的字节码指令就很能说明问题,在编译后 JVM 采用 int 数据对布尔值进行处理。再看一下 boolean 数组的字节码,在存储时 JVM 指令使用的是 bastore 而不是 istore,
因此可以看出 boolean 数组内部使用的是 byte 类型。