這裏我的問題是 什麼是棧和堆內存 我們爲什麼需要這兩種記憶 什麼是每個棧和堆內存
Q
棧和堆內存
-1
A
回答
1
在C/C++語言的內存分配到堆棧的利弊在分配範圍結束時自動釋放,堆中的內存必須有一些策略(free(),delete ...或者一些垃圾回收器)可用。分配在堆上的內存在不同的功能範圍內可見。在堆棧中,我們不能分配大塊內存,所以當需要爲數據分配大空間時,堆也是有用的。
2
一言以蔽之:
The stack
- 程序使用實際運行程序內存。這包含局部變量,回調數據(例如,當您調用函數,堆棧存儲狀態並在輸入新函數之前將其置於代碼中)以及其他一些小事情。您通常不直接控制堆棧,變量和數據被破壞,當您移入和移出函數作用域時創建。
The heap
- 程序的「動態」內存。每次您動態創建一個新對象或變量時,它都會存儲在堆中。這個內存是由程序員直接控制的,你應該負責創建和刪除那裏的對象。
0
我不確定你在問什麼上下文,但我可以回答他們在內存分配中的使用。這兩個數據結構都需要我的平臺,如.NET for Garbage collection。請記住,所有值類型都存儲在堆棧上,並且堆中的所有引用類型都被存儲。這有助於運行時環境創建一個對象圖並跟蹤所有對象未被使用並且可以考慮用於垃圾收集。
1
檢查this JVM上的簡短文章,它解釋Java堆棧和堆。
相關問題
- 1. 內存分配,堆棧和堆棧
- 2. C程序的堆棧和堆內存
- 3. Java堆和堆棧內存分配
- 4. 堆棧和堆內存的影響?
- 5. 堆棧和堆棧內存存儲在C++
- 6. C++堆棧內存和CPU緩存
- 7. 關於堆棧和堆棧內存使用的問題
- 8. WebAssembly堆棧/堆棧指針初始化和內存佈局
- 9. 其他內存區域(堆棧和堆棧除外)?
- 10. 在內存中創建叉和堆棧
- 11. Wicket,頁面堆棧和內存使用
- 12. C++指針和堆棧內存管理
- 13. 內存分配(指針和堆棧)
- 14. 返回堆棧和內存泄漏
- 15. 堆棧內存的iostream
- 16. .NET堆棧內存限制
- 17. 堆棧內存位置
- 18. 堆棧幀內存分配
- 19. C堆棧內存佈局
- 20. Android中的堆棧內存
- 21. 的memcpy堆棧內存
- 22. JVM - 堆棧和堆棧
- 23. Linux內核中的堆棧內存
- 24. 在堆棧內存中存儲引用
- 25. 內存中的堆棧實際上是一個堆棧嗎?
- 26. C++在內存中創建堆棧和堆?
- 27. 多個堆棧和堆放在虛擬內存中的位置?
- 28. 與Java內存管理(堆棧和堆)混淆
- 29. 需要可執行堆棧和堆內存
- 30. C++在堆和堆棧上分配內存?
嘗試回答更簡單的問題,例如「什麼是Google?」,然後嘗試「我如何使用Google?」。在學習瞭如何搜索之後,回來在StackOverflow上嘗試一下,你可能會注意到這個問題可能已經被提出了400億次。 – leppie 2011-01-21 10:02:03
肯定是在講義 – skaffman 2011-01-21 10:02:09