黑马程序员技术交流社区

标题: 关于流的问题,为什么缓冲的数组定义1024的整数倍 [打印本页]

作者: 黄鸿达    时间: 2013-2-9 20:04
标题: 关于流的问题,为什么缓冲的数组定义1024的整数倍
本帖最后由 黄鸿达 于 2013-2-9 23:40 编辑
  1. import java.io.*;
  2. public class FileReader {
  3.         public static void main(String[] args) throws IOException {
  4.                 FileReader fr=new FileReader("D:\\Demo.txt");
  5.                 //为什么定义1024的整数倍?
  6.                 char[] c=new char[1024];
  7.                 int num=0;

  8.                 while((num=fr.read(c))!=-1){
  9.                         System.out.println(new String(c,0,num));
  10.                 }

  11.         }

  12. }
复制代码
毕老师说定义把缓冲的数组定义1024的整数倍,我不懂,求解释
作者: 黄基焜    时间: 2013-2-9 20:15
因为计算机中的进位是1024,1m=1024k,1g=1024m,1t=1024g
所以定为1024的整数倍比较好算数。
这是基础中的基础啊~
作者: 沈文杰    时间: 2013-2-9 20:40
其实定义多少无所谓只要不过大就行,只是约定俗成吧
作者: 范天成    时间: 2013-2-9 23:10
定义成多少都可以,但是一般都是定义成1024的倍数,内存对齐?不知道JAVA里有没有内存对齐的机制。
作者: 陈科宇    时间: 2013-2-9 23:30
      朋友,定义成1024只是一种习惯。如果定义的数字小,那么单次读取的字符数也就相对较少。定义的数字较大,那么单次读取的内容也就相对较多,也能够减少读取的次数。




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