黑马程序员技术交流社区
标题:
关于缓冲的小问题,求教
[打印本页]
作者:
宋美成
时间:
2014-4-23 11:44
标题:
关于缓冲的小问题,求教
本帖最后由 宋美成 于 2014-4-23 23:57 编辑
缓冲的存在便于了数据高效的读取和写入,老师用一滴一滴的喝水与现将水攒到杯子里在一口喝下这个比喻,来说明缓冲存在的意义。我的问题在于,宏观上我们看虽然如此,但是究其本质,微观上,无论是哪种方式,无论时候有缓冲,都是对数据一个一个挨个的进行读写,从这个本质上看,我就没有明白缓冲的存在是如何提高效率的呢?求大师解答
作者:
向日葵的曙光
时间:
2014-4-23 12:04
我给你打个比喻吧,比如你们班一个班的同学要去旅游,旅游要门票吧,如果你们验票时一个一个人进去,每个人都要验票,与你们这个班先把票全部买好了,然后集体送过去
这样验票速度是不是快点呢,效率是不是高点呢。高速缓冲区的意义就在这里,避免了一个一个读取数据的麻烦。而是先把数据存起来,然后读取数据的时候就是一行一行的进行读取了
也就是readLine方法,这样效率会提高很多
作者:
苍穹的雨
时间:
2014-4-23 14:33
举个例子吧:例如你先用不带缓冲区的流往硬盘里存数据的话,计算机每个字节都或往硬盘里存一次,而每存一次cpu、内存、硬盘就要交换一次数据。
而如果你使用的是带缓冲区的流存数据的话,数据就会先存入内存中,一定量后再整体存入硬盘,这样就大大减少了内存和cpu访问硬盘的次数,从而提高了效率。
作者:
苍穹的雨
时间:
2014-4-23 14:35
例如你用不带缓冲区的流往硬盘里存数据的话,计算机每个字节都或往硬盘里存一次,而每存一次cpu、内存、硬盘就要交换一次数据。
而如果你使用的是带缓冲区的流存数据的话,数据就会先存入内存中,一定量后再整体存入硬盘,这样就大大减少了内存和cpu访问硬盘的次数,从而提高了效率。
作者:
悠然丶
时间:
2014-4-23 16:32
这个很好理解!举例说明问题..
你去超市购物,买了很多东西,比如说有10件物品.要把这些物品拿回家..
如果你不用缓冲区原理,就是一次拿一件回去,然后再回来拿第二件
这样你要来回跑10次,效率很低吧
如果你使用了缓冲技术,就是找一个容器先装一部分,比如说先装5件,回去一件一件的卸下来
然后再回来装5件,拿回去.一件一件的卸下来.这样你2次就搞定了.你要是能一次吧10件都装了.那一次就搞定了
效率很显然的高!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2