我在许多程式中都看过这一行byte[] buffer = new byte[4096];有点不明白,为什么是4096,而不是其它数值,希望知道的朋友解释一下。

解决方案 »

  1.   

    4096 = 1024 * 4, 就是 4K,byte[4096] 就是4k字节
      

  2.   

    我是在Ajax的上传组件中看到的,我想这样写一定有什么意义,不然我任意定义一个不等于4096的buffer也一样用吧。是不是涉及到优化之类的,所以想弄明白。
      

  3.   

    采用 4 的倍数,或者 1K 的倍数作为 buffer,有利于较少内存碎片
      

  4.   

    楼上正解。其实byte[] buffer = new byte[4096]只是在内存中开辟块缓冲区而已。大小随便你写(假如你不是Extreme Programming的FANS),只要不超过你实际可用内存大小就好。不过太大或者太小都会对性能有影响。