簡體   English   中英

memory如何分配給java中的Stack和Queue

[英]How memory is allocated for Stack and Queue in java

我們知道 ArrayList 使用動態數組來存儲數據。 LinkedList 使用鏈表來存儲數據。 因此,對於這兩種情況,我們都知道添加或刪除新元素時它是如何工作的(內存方面)。 現在類似地,如何為 java 中的堆棧或隊列分配 memory。 當我在堆棧或隊列中添加/刪除元素時,在 Memory 級別會發生什么。

好吧, Queue是一個接口,所以不多說。 有很多實現和不同的行為。 無論如何,例如, ArrayBlockingQueue具有類似於ArrayList的 memory 分配。 無論如何,有兩個主要組(有界和無界),但這實際上取決於您選擇的實現。

關於Stack , memory 分配也與ArrayList非常相似,因為它是Vector的子類,並且由數組支持。

java.util.Stackjava.util.Vector的子類,它只是一個數組。 現在java.util.Queue是一個接口,並具有各種實現,分為兩大類:

  1. bounded - 由一個固定大小的底層數組支持。 一個常見的例子是ArrayBlockingQueue
  2. 無界 - 由鏈表支持,因此理論上是無限的。 一個常見的例子是LinkedBlockingQueue

請檢查 堆棧隊列的文檔

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM