缓冲区是一块特定的内存区域。开辟缓冲区的目的是通过缓解应用程序上下层之间的性能差异,提高系统性能。
缓冲可以协调上层组件和下层组件的性能差异。当上层组件性能由于下层组件时,可以有效地减少上层组件对下层组件的等待时间。例如,在操作系统中,为了改善 CPU 与 I/O 设备速度不匹配的矛盾,设置了缓冲区,程序输出的数据先送到缓冲区暂存,然后由I/O 设备慢慢地处理。这时,CPU不必等待,可以继续执行程序。实现了CPU与I/O设备之间的并行工作。事实上,凡在数据的到达速率与其离去速率不同的地方,都可设置缓冲,以缓和它们之间速度不匹配的矛盾。
缓冲最常用的场景就是提高 I/O 速度。为此 JDK 内不少 I/O 组件都提供了缓冲功能。比如,使用 FileWriter时,进行文件写操作的代码如下:
public class BufferTest {
public static final int CIRCLE = 100000;
public static void test1() throws Exception {
Writer writer = new FileWriter(new File("file1.txt"));
for (int i = 0; i < CIRCLE; i++) {
writer.write(i);
}
writer.close();
}
public static void test2() throws Exception {
Writer w