标题：缓冲器
简介
缓冲寄存器又称缓冲器，它分输入缓冲器和输出缓冲器两种。前者的作用是将外设送来的数据暂时存放，以便处理器将它取走；后者的作用是用来暂时存放处理器送往外设的数据。[1]由于缓冲器接在数据总线上，故必须具有三态输出功能。 
buffer英音：['bʌfə]美音：['bʌfɚ]
英文名：buffer 　中文译名: 缓冲，缓冲器，缓冲液
解释:1、 电信设备。在数据传输中，用来弥补不同数据处理速率速度差距的存储装置叫做缓冲器。把  缓冲器数据存放到缓冲器中的技术叫做缓冲。
2、生化术语。缓冲液：化学试剂。用于缓冲PH的变化，常用于生物工程实验，如DNA、RNA等物质的提取和提纯，酶的性质的测定，蛋白质的分离等等。缓冲：某些试剂具有使溶液在加入酸或碱性物质的时候PH变化不明显的作用，这种作用叫做缓冲。
主要用来完成介质液体或气体波动压力趋向于平稳的容器。
专用语
接口集成电路专用语 
最基本线路构成的门电路存在着抗干扰性能差和不对称等缺点。为了克服这些缺点，可以在输出或输入端附加反相器作为缓冲级；也可以输出或输入端同时都加反相器作为缓冲级。这样组成的门电路称为带缓冲  缓冲寄存器器的门电路。
带缓冲输出的门电路输出端都是1个反相器，输出驱动能力仅由该输出级的管子特性决定，与各输入端所处逻辑状态无关。而不带缓冲器的门电路其输出驱动能力与输入状态有关。另一方面。带缓冲器的门电路的转移特性至少是由3级转移特性相乘的结果，因此转换区域窄，形状接近理想矩形，并且不随输入使用端数的情况而变化、加缓冲器的门电路，抗干扰性能提高10%电源电压。此外，带缓冲器的门电路还有输出波形对称、交流电压增益大、带宽窄、输入电容比较小等优点。不过，由于附加了缓冲级，也带来了一些缺点。例如传输延迟时间加大，因此，带缓冲器的门电路适宜用在高速电路系统中。基本原理在CPU的设计中，一般输出线的直流负载能力可以驱动一个TTL负载，而在连接中，CPU的一根地址线或数据线，可能连接多个存储器芯片，但存储器芯片都为MOS电路，主要是电容负载，直流负载远小于TTL负载。故小型系统中，CPU可与存储器直接相连，在大型系统中就需要加缓冲器。 
任何程序或数据要为CPU所使用，必须先放到主存储器（内存）中，即CPU只与主存交换数据，所以主存的速度在很大程度上决定了系统的运行速度。程序在运行期间，在一个较短的时间间隔内，由程序产生的地址往往集中在存储器的一个很小范围的地址空间内。指令地址本来就是连续分布的，再加上循环程序段和子程序段要多次重复执行，因此对这些地址中的内容的访问就自然的具有时间集中分布的倾向。数据分  基本原理布的集中倾向不如程序这么明显，但对数组的存储和访问以及工作单元的选择可以使存储器地址相对地集中。这种对局部范围的存储器地址频繁访问，而对此范围外的地址访问甚少的现象被称为程序访问的局部化（Locality of Reference）性质。由此性质可知，在这个局部范围内被访问的信息集合随时间的变化是很缓慢的，如果把在一段时间内一定地址范围被频繁访问的信息集合成批地从主存中读到一个能高速存取的小容量存储器中存放起来，供程序在这段时间内随时采用而减少或不再去访问速度较慢的主存，就可以加快程序的运行速度。这个介于CPU和主存之间的高速小容量存储器就称之为高速缓冲存储器，简称Cache。不难看出，程序访问的局部化性质是Cache得以实现的原理基础。同理，构造磁盘高速缓冲存储器（简称磁盘Cache），也将提高系统的整体运行速度CPU一般设有一级缓存（L1 Cache）和二级缓存（L2 Cache）。一级缓存是由CPU制造商直接做在CPU内部的，其速度极快，但容量较小，一般只有十几K。PⅡ以前的PC一般都是将二级缓存做在主板上，并且可以人为升级，其容量从256KB到1MB不等，而PⅡ CPU则采用了全新的封装方式，把CPU内核与二级缓存一起封装在一只金属盒内，并且不可以升级。二级缓存一般比一级缓存大一个数量级以上，另外，在CPU中，已经出现了带有三级缓存的情况。高速缓冲存储器高速缓冲存储器，即Cache。我们知道，数据分布的集中倾向不如程序这么明显，如果把在一段时间内一定地址范围被频繁访问的信息集合成批地从主的系统中，CPU访问数据时，在Cache中能直接找到的概率，它是Cache的一个重要指标，与Cache的大小、替换算法、程序特性等因素有关。增加Cache后，CPU访问主存的速度是可以预算的，64KB的Cache可以缓冲4MB的主存，且命中率都在90%以上。以主频为100MHz的CPU（时钟周期约为10ns）、20ns的Cache、70ns的RAM、命中率为90%计算，CPU访问主存的周期为：有Cache时，20×0.9+70×0.1=34ns；无Cache时，70×1=70ns。由此可见，加了Cache后，CPU访问主存的速度大大提高了，但有一点需注意，加Cache只是加快了CPU访问主存的速度，而CPU访问主存只是计算机整个操作的一部分，所以增加Cache对系统整体速度只能提高10~20%左右。
电梯
  缓冲器是电梯安全系统的最后一个环节，在电梯出现故障或事故蹲底时起到缓冲的作用。从而缓解电梯或电梯里的人免受直接的撞击。
电梯缓冲器主要分为：油压缓冲器、弹簧缓冲器和聚氨酯缓冲器，其中油压缓冲器由于适应各种速度吨位要求应用比较普遍，弹簧缓冲器用于低速电梯。
汽车弹簧
  汽车弹簧缓冲胶汽车弹簧缓冲器（缓冲胶）是一种高弹性高韧度的橡胶类制品，属汽车改装类配件。用来安装在汽车悬挂系统的螺旋弹簧处，主要起到缓冲避震作用并对避震器起来保护。
缓冲胶外观是有开口的圆环状，上下各有一条凹槽（用来容置螺旋弹簧），侧边有两个、三个或多个孔位。根据弹簧间距的标准规格，缓冲胶分为 A+A、A、B、C、D、E、F 七种标准型号。理论上，这七款型号可以囊括全球极大部分螺旋弹簧避震车型所需。
缓冲胶亦有称之为缓冲器、缓冲垫、缓冲块、减震胶、避震胶等等，最广泛最正确的全称是“汽车弹簧缓冲胶”，英文名称是 Car Spring Buffer Retainer作用汽车缓冲器是通过利用液压弹簧减震功能，当汽车瞬间相撞时，缓冲器就起到了缓冲作用从而减轻两车相撞后的破坏程度，提高车与人的安全性。一般来说，对于新车，减震缓冲器起到的是使驾驶更加舒适的作用；而当减震弹簧用久之后，往往因缺乏弹性而出现疲软现象，反应不灵敏，很容易引发事故。特点1、采用高档轿车的缓冲原理，明显提高车辆减震性能。
2、降低由减震器受损和老化而产生的噪音。
3、可减轻长途驾驶后的疲劳感。
4、有效解决减震器弹簧疲软问题，恢复减震器性能。
5、保护减震器和悬挂系统，避免减震芯的油封漏油。
6、提高车身3—5CM、恢复车体原来的高度。
7、缩短刹车距离、延缓钣金老化，提高安全性。
8、急转弯、山路、土路低速行驶过程中防颤效果好，有效消除60%以上的颠簸感，增加行车的舒适感。
9、试验结果可延长减震器寿命长达2倍以上。
10、安装简单，不松动车辆任何螺丝。
11、具有耐磨、耐寒、耐冲击、耐老化、耐水、使用寿命为2—3年。安装方法首先要用千斤顶支起车身，用水清洗弹簧。安装完成后，将汽车减震缓冲器左右旋转几下，检查弹簧是否全部装进弹簧槽里；缓冲器外沿是否剐蹭挡泥板；缓冲器是否交叠。同时，为避免减震缓冲器在汽车行驶过程中下滑至弹簧底部，需要安装止位卡。
其次在松弛的螺旋弹簧部位喷上肥皂水或润滑液。然后将喷了肥皂水或润滑液的强力缓冲器插入松弛了的螺旋弹簧空隙，安装确认后放下车体即可。 
最后，减震弹簧之间的距离是安装减震缓冲器需要注意的问题。减震弹簧之间的距离要等于减震缓冲器的长度。如果用手挤压比较费力，则要松开减震器的螺丝，让减震弹簧松弛2—3厘米。常见问题处理1、减震缓冲器外沿剐蹭挡泥板
上旋或下旋缓冲器，让开剐蹭点，但下旋幅度不能到弹簧最底部。上、下旋转后还不能避开剐蹭点，则要用较锋利的刀割去挡泥板的剐蹭部分。
2、减震缓冲器交叠
由于减震缓冲器直径大于弹簧直径，这种情况下就要将减震缓冲器长出的交叠部分裁切掉。裁切时要在缓冲器的两端平均裁切，不能一端裁切。注意事项1、减震缓冲器的弹性指数是选购第一要点。齐齐网汽车用品专家建议拿到产品之后，用手随便扭几下，看能否迅速恢复原形。
2、一般情况下，汽车弹簧减震缓冲器安装在弹簧中间部位效果最佳。
3、安装减震缓冲器时尽量不要使用工具撬压，以免损伤减震缓冲器。
4、安装时可能会造成左右减震弹簧的间隙大小不均，使车体不平衡，所以加装时要谨慎。
Java
Bufferjava.nio.Buffer直接已知子类：ByteBuffer, CharBuffer, DoubleBuffer, FloatBuffer, IntBuffer, LongBuffer, ShortBufferpublic abstract class Bufferextends Object一个用于特定基本类型数据的容器。 
缓冲区是特定基本类型元素的线性有限序列。除内容外，缓冲区的基本属性还包括容量、限制和位置：
缓冲区的容量 是它所包含的元素的数量。缓冲区的容量不能为负并且不能更改。 
缓冲区的限制是第一个不应该读取或写入的元素的索引。缓冲区的限制不能为负，并且不能大于其容量。 
缓冲区的位置 是下一个要读取或写入的元素的索引。缓冲区的位置不能为负，并且不能大于其限制。 
对于每个非 boolean 基本类型，此类都有一个子类与之对应。传输数据此类的每个子类都定义了两种获取 和放置 操作： 
相对 操作读取或写入一个或多个元素，它从当前位置开始，然后将位置增加所传输的元素数。如果请求的传输超出限制，则相对获取 操作将抛出 BufferUnderflowException，相对放置 操作将抛出 BufferOverflowException；这两种情况下，都没有数据被传输。 
绝对 操作采用显式元素索引，该操作不影响位置。如果索引参数超出限制，绝对获取 操作和放置 操作将抛出 IndexOutOfBoundsException。 
当然，通过适当通道的 I/O 操作（通常与当前位置有关）也可以将数据传输到缓冲区或从缓冲区传出数据。做标记和重置缓冲区的标记 是一个索引，在调用 reset 方法时会将缓冲区的位置重置为该索引。并非总是需要定义标记，但在定义标记时，不能将其定义为负数，并且不能让它大于位置。如果定义了标记，则在将位置或限制调整为小于该标记的值时，该标记将被丢弃。如果未定义标记，那么调用 reset 方法将导致抛出 InvalidMarkException。不变式标记、位置、限制和容量值遵守以下不变式： 
0<=标记<=位置<=限制<=容量新创建的缓冲区总有一个 0 位置和一个未定义的标记。初始限制可以为 0，也可以为其他值，这取决于缓冲区类型及其构建方式。一般情况下，缓冲区的初始内容是未定义的。清除反转重绕除了访问位置、限制、容量值的方法以及做标记和重置的方法外，此类还定义了以下可对缓冲区进行的操作： 
clear() 使缓冲区为一系列新的通道读取或相对放置 操作做好准备：它将限制设置为容量大小，将位置设置为 0。 
flip() 使缓冲区为一系列新的通道写入或相对获取 操作做好准备：它将限制设置为当前位置，然后将位置设置为 0。 
rewind() 使缓冲区为重新读取已包含的数据做好准备：它使限制保持不变，将位置设置为 0。只读缓冲区每个缓冲区都是可读取的，但并非每个缓冲区都是可写入的。每个缓冲区类的转变方法都被指定为可选操作，当对只读缓冲区调用时，将抛出 ReadOnlyBufferException。只读缓冲区不允许更改其内容，但其标记、位置和限制值是可变的。可以调用其 isReadOnly 方法确定缓冲区是否为只读。线程安全多个当前线程使用缓冲区是不安全的。如果一个缓冲区由不止一个线程使用，则应该通过适当的同步来控制对该缓冲区的访问。调用链指定此类中的方法返回调用它们的缓冲区（否则它们不会返回任何值）。此操作允许将方法调用组成一个链；例如，语句序列 
b.flip(); b.position(23); b.limit(42);可以由以下更紧凑的一个语句代替 b.flip().position(23).limit(42);
从以下版本开始：1.4[2]