黑马程序员技术交流社区

标题: 为什么在Io中定义的那个 [打印本页]

作者: huanxiang0220    时间: 2015-2-9 00:41
标题: 为什么在Io中定义的那个
为什么在Io中定义的那个byte[] buff= new Byte[1024*1024]  表示1M的大小了

作者: 书生灬流年    时间: 2015-2-9 10:52
本帖最后由 书生灬流年 于 2015-2-9 16:28 编辑

1024*1024不就是1M嘛。。。。1024Byte=1KB,分配1KB的缓存,再乘以1024 不就是1M吗。。。。是这样的吧。。
作者: lwj123    时间: 2015-2-9 11:31
一次读取1m的数据大小
作者: doomsday    时间: 2015-2-9 11:48
1024字节就是1K 1204K就是1M
作者: 俺做android开发    时间: 2015-2-9 12:01
楼主想问的应该不是这么简单的吧
作者: Doug    时间: 2015-2-9 14:35
因为1MB= 1024KB=1024*1024B。
作者: Doug    时间: 2015-2-9 14:44
实际生活中1K=1000=10^3,但计算机是二进制,不存在2^n(整数)=1000,最接近的就是2^10=1024。
所以计算机方面规定1K=2^10=1024。

要对比的话,硬盘的容量是个很好的例子:
厂家标注的空间是按照【1TB=1000GB,1GB=1000MB,1MB=1000KB,1KB=1000B】来的。
但计算机读取的时候是按照【1TB=1024GB,1GB=1024MB,1MB=1024KB,1KB=1024B】来的。
所以你买的硬盘如果是1TB的,那实际上只有1000*1000*1000*1000/1024/1024/1024/1024=0.909~TB。
作者: 邓士林    时间: 2015-2-9 15:33
起到缓冲的作用。
作者: huanxiang0220    时间: 2015-2-9 16:04
邓士林 发表于 2015-2-9 15:33
起到缓冲的作用。

我和ID傲视缓冲作用,但是不懂byte[1024]是2k的容量
作者: huanxiang0220    时间: 2015-2-9 16:05
huanxiang0220 发表于 2015-2-9 16:04
我和ID傲视缓冲作用,但是不懂byte[1024]是2k的容量

我刚才字打错了,我知道是缓冲的作用,但是不懂byte[1024]是2k的容量 、char【1024*1024】是1M的容量
作者: huanxiang0220    时间: 2015-2-9 16:07
Doug 发表于 2015-2-9 14:35
因为1MB= 1024KB=1024*1024B。

那char[1024] 是2k的容量?
作者: huanxiang0220    时间: 2015-2-9 16:08
lwj123 发表于 2015-2-9 11:31
一次读取1m的数据大小

char【1024】是多大的,请问?
作者: huanxiang0220    时间: 2015-2-9 16:11
书生灬流年 发表于 2015-2-9 10:52
1024*1024不就是1M嘛。。。。

是?  我没有注意,谢了
作者: Doug    时间: 2015-2-9 16:27
huanxiang0220 发表于 2015-2-9 16:07
那char[1024] 是2k的容量?


java的char类型是2个byte。
所以这个char[1024]就是1024*2 byte。

作者: 温晓慧    时间: 2015-2-9 16:55
缓存数组,字节流中读取是一个字节一个字节的,如果不建立缓存数组那就是读一个写一个,效率很低,如果将读取到的先存储到数组中,再写入,这样就减少读写入次数,效率更高
作者: ㏒假™面具    时间: 2015-2-9 18:45
1M= 1024 k(千字节)   1kb = 1024字节
作者: huanxiang0220    时间: 2015-2-9 20:36
huanxiang0220 发表于 2015-2-9 16:08
char【1024】是多大的,请问?

那是2k的容量?
作者: qiuyuhuaihua    时间: 2015-2-9 21:26
huanxiang0220 发表于 2015-2-9 20:36
那是2k的容量?

char 是两个字节,char[1024] 可不就是2 * 1024 byte 嘛!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2