Java堆疊的區別有哪些

一品威客01發表於2021-01-27
  1. 功能不同

棧記憶體用來儲存區域性變數和方法呼叫。

而堆記憶體用來儲存Java中的物件。無論是成員變數,區域性變數,還是類變數,它們指向的物件都儲存在堆記憶體中。

  1. 共享性不同

棧記憶體是執行緒私有的。

堆記憶體是所有執行緒共有的。

  1. 異常錯誤不同

如果棧記憶體或者堆記憶體不足都會丟擲異常。

棧空間不足:java.lang.StackOverFlowError。

堆空間不足:java.lang.OutOfMemoryError。

  1. 空間大小

棧的空間大小遠遠小於堆的

相關文章