黑马程序员技术交流社区

标题: IO流中关于自定义缓冲区和Buffered缓冲区的区别 [打印本页]

作者: 遗忘的青春年华    时间: 2014-3-14 23:03
标题: IO流中关于自定义缓冲区和Buffered缓冲区的区别
IO流中自定义缓冲区和Buffered缓冲区有什么区别,他们在内存当中都是怎么实现的?为什么buffered是一次性读取吗?,自定义缓冲区最大可以自定义多大呢?
作者: 目标    时间: 2014-3-15 00:33
自定义缓冲区就是模拟了一下Buffered内部的实现原理,如果是自定的话,不要超过虚拟机内存就好。
作者: 遗忘的青春年华    时间: 2014-3-15 12:26
byte[] arr = new byte[1024];//这里可以定义1024的整数倍,我算了一下估计是170M左右,再大内存就溢出了啊,1024是1k  1024*1024=1M 1024*1024*170 就是最大了,为什么170不能再大了?谁定义的这个170呢?
作者: 李猛    时间: 2014-3-15 15:14
自定义的时候注意虚拟机默认内存是64M,所以尽量不要大于他,如果需要更大的内存空间,你可以在虚拟机启动时手动制定开辟空间大小
作者: 何伟超    时间: 2014-3-15 15:44
自定义,第一是为了让你知道它的原理,第二就是定义一个适合自己用的缓冲区。Java定义的许多东西有时候都不能完成我们所要执行的任务,所以毕老师讲解的时候就多教了一些关于自定义的方法。不光是缓冲区,类加载器之类的也要自定义。Java只是一个平台,所有代码都有一定的格式,也都有规定的。可以说Java只是给你了一个模板。任何你不满意的地方几乎都是可以根据自己的需要在规定之内自己重新定义的。关于缓冲区,你想定义多大都可以根据你的需要定义。Java自身定义的缓冲区只是为了让你日常使用的。当你定义过大会溢出这个也是正常的,毕竟Java也只是一个程序,在系统中运行,也会有一定的限制。假如你以后从事JavaME的时候你就可以根据硬件来按自己的需求走了。毕竟那时只有一个Java,那么它就是老大了!!




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