當前位置:首頁 » 硬碟大全 » 數組和緩存區別
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

數組和緩存區別

發布時間: 2023-06-05 15:02:55

Ⅰ java的IO流中可以通過自定義一個數組來存儲數據,為什麼還要使用緩存區呢

IO流自定義位元組流的緩沖區:

思路:BufferedInputStream類中read()方法的工作原理
1)先一個一個從位元組流中讀取位元組,讀取一定量(自定義)之後,存儲在一個位元組數組(緩沖區)(FileInputStream.read(byte[] b)),並獲得存儲數量(read方法的返回值)。
2)一個一個位元組返回,返回一個,存儲數量減1,然後指針往後移一位,准備取下一個。
3)如果存儲數量為0 ,代表當前數組中所有數據已經全部取完,此時再來一次讀取(read(byte[] b)),再獲得此次存儲數量。
4)如果存儲數量(即read方法返回-1),代表讀到文件末尾,返回-1。
因此,需要用到以下幾個變數:
讀取的位元組數量,指向數組中准備取哪一個的指針,將要返回的位元組變數。

Ⅱ C語言中buffer到底是什麼意思是數組緩沖區為什麼一般C程序中都不定義他直接拿來用呢

Buffer是NodeJS的重要數據類型,很有廣泛的應用。代表原始堆的分配額的數據類型。在NodeJS中以類數組的方式使用。

在Buffer類的描述中,Buffer被定義為用於特定基本類型數據的容器,且是特定基本類型的線性優先元素序列。

Buffer提供了一個位元組緩沖區,它可以從channels中讀取數據到Buffer,也可以將Buffer中的數據寫入到channels,所以NIO被定義為面向緩沖區編程,而IO則是被定義為面向流的編程。

當一個緩存中的數據被多次讀取,實際上就減少了該數據從慢速設備中讀取的量,這就存在某種演算法去選擇什麼數據需要保存在cache中,因為盡可能多的讓cache命中能提高性能。

(2)數組和緩存區別擴展閱讀

Buffer類的四個變數

1、capacity

容量,必須初始化的值(因為底層是數組)

2、limit

上界,緩沖區的臨界區,即最多可讀到哪個位置

3、position

下標,當前讀取到的位置(例如當前讀出第5個元素,則讀完後,position為6)

4、mark

標記,備忘位置