Java棧內存和堆內存

首先說明棧內存和堆內存裏存放的是什麼

  • 棧內存中存放函數中定義的一些基本類型的變量和對象的引用變量;
  • 堆內存中存放new創建的對象和數組。

 

簡單的來說,堆主要是用來存放對象的,棧主要是用來執行程序的

這麼做是因爲

  • 棧的存取速度快,棧數據可以共享,但是棧中的數據大小和生存期必須確定,缺乏靈活性中存放一些基本類型的對象和對象句柄
  • 堆是操作系統分配給自己內存,由於從操作系統管理的內存分配,所以再分配和銷燬時都需要佔用時間,因此用堆的效率非常低,但是優點在於編譯器不需要指導從堆裏分配多少存儲控件,也不需要知道存儲的數據要再堆裏停留多長事件,因此用堆保存數據時會得到更大的靈活性
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章