正如你在Node.js缓冲区类文档中所读到的,缓冲区类似于整数数组,但对应于V8堆之外的原始内存分配。
那么迄今为止,一切都还好。
现在令我困惑的问题是什么是缓冲区从技术上讲。 它是否只是数组,具有一些额外的函数用于使用特定编码创建和转换为字符串?
还是说这里面还有“更多”的东西?
那么迄今为止,一切都还好。
现在令我困惑的问题是什么是缓冲区从技术上讲。 它是否只是数组,具有一些额外的函数用于使用特定编码创建和转换为字符串?
还是说这里面还有“更多”的东西?
缓冲区是一块内存,就像在C/C++中一样。您可以将此内存解释为各种长度的整数或浮点数数组,或作为二进制字符串。与高级数据结构(如数组)不同的是,缓冲区大小不可调整。
它大致对应:
char*
或char[]
byte[]
bytes
或不可调整的bytearray
Buffer
早于ArrayBuffer
。当时还没有ArrayBuffer
,这就是为什么在node.js中创建了Buffer
类。浏览器供应商不喜欢Buffer
接口,并创建了自己的ArrayBuffer
。TypedArray类族提供了对ArrayBuffer
内存区域的不同解释。现在,Buffer
只是一个Uint8Array
(它本身是TypedArray实现之一)。 - phihag来自http://nodejitsu.com/的解释...
缓冲区是在Node中Buffer类的实例,它专门处理原始二进制数据。每个缓冲区对应在V8之外分配的一些原始内存。缓冲区有点像整数数组,但不可调整大小,并具有为二进制数据专门设计的大量方法。此外,缓冲区中的“整数”每个表示一个字节,因此限于0至255(2^8-1)之间的值,包括边界。
阅读更多:Node.js中的缓冲区