为什么:
- 由于两种对象的运行速度不一样,如果直接通信的话,必然会由于有一个对象的速度慢而浪费了另一个对象的时间。
- 解决办法是,不让两个对象直接通信,而是增加第三方来完成两个对象的间接通信。这个第三方就是缓冲区。
- 当对象1和缓冲区直接通信时,时间就由对象1的运行速度来决定。
- 当对象2和缓冲区直接通信时,时间就由对象2的运行速度来决定。
- 这样就可以分别充分的利用两个对象各自的速度来解决速度不等而引起的时间浪费。
- 两个对象不能同对缓冲区来进行通信。同一时间只能有一个。
- 所以,设置信号sign来控制缓冲区和谁来通信。
是什么:
- 缓冲区是内存大小可以变化的内容,但是内存大小是有上限的。
- 缓冲区是内存中预留指定大小的存储空间用来对I/O的数据做临时存储,数据的引用可变。
- 而,非缓冲区的引用不可变。
- StringBuffer的缓冲区大小很大一般不会超越,所以不会出现越界的情况。
怎么用
缓冲区作为一个对象,有自己的属性和方法。
mark
- 所有Buffer都有的四个属性。分别是
position,
limit,
capacity:容量
- 方法: