A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© huanxiang0220 中级黑马   /  2015-2-9 00:41  /  1582 人查看  /  18 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

为什么在Io中定义的那个byte[] buff= new Byte[1024*1024]  表示1M的大小了

18 个回复

倒序浏览
本帖最后由 书生灬流年 于 2015-2-9 16:28 编辑

1024*1024不就是1M嘛。。。。1024Byte=1KB,分配1KB的缓存,再乘以1024 不就是1M吗。。。。是这样的吧。。
回复 使用道具 举报
一次读取1m的数据大小
回复 使用道具 举报
1024字节就是1K 1204K就是1M
回复 使用道具 举报
楼主想问的应该不是这么简单的吧
回复 使用道具 举报
因为1MB= 1024KB=1024*1024B。
回复 使用道具 举报
Doug 中级黑马 2015-2-9 14:44:17
7#
实际生活中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
起到缓冲的作用。

我和ID傲视缓冲作用,但是不懂byte[1024]是2k的容量
回复 使用道具 举报
huanxiang0220 发表于 2015-2-9 16:04
我和ID傲视缓冲作用,但是不懂byte[1024]是2k的容量

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

那char[1024] 是2k的容量?
回复 使用道具 举报
lwj123 发表于 2015-2-9 11:31
一次读取1m的数据大小

char【1024】是多大的,请问?

点评

char[1024]:表示开辟1024个空间  发表于 2015-2-9 16:45
回复 使用道具 举报
书生灬流年 发表于 2015-2-9 10:52
1024*1024不就是1M嘛。。。。

是?  我没有注意,谢了
回复 使用道具 举报
huanxiang0220 发表于 2015-2-9 16:07
那char[1024] 是2k的容量?


java的char类型是2个byte。
所以这个char[1024]就是1024*2 byte。
回复 使用道具 举报
缓存数组,字节流中读取是一个字节一个字节的,如果不建立缓存数组那就是读一个写一个,效率很低,如果将读取到的先存储到数组中,再写入,这样就减少读写入次数,效率更高
回复 使用道具 举报
1M= 1024 k(千字节)   1kb = 1024字节
回复 使用道具 举报
huanxiang0220 发表于 2015-2-9 16:08
char【1024】是多大的,请问?

那是2k的容量?
回复 使用道具 举报

char 是两个字节,char[1024] 可不就是2 * 1024 byte 嘛!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马