對象存儲在堆中,當它是一個類實例變量,並在堆棧中時,它是一個函數變量?那是對的嗎?存儲對象實例在哪裏?
回答
引用存儲在堆棧(不是全部,雖然情況)
注:只有局部變量。對於實例和類變量,它們是對象的一部分,因此也是堆。
雖然對象存儲在堆上。
- 類對象,包括方法代碼和靜態字段:堆。
- 對象,包括實例字段:堆。
- 局部變量和調用方法:堆棧
非常真實..所以它意味着他們將被存儲在堆 – BlackFire27 2012-02-27 07:11:54
不。值類型有些古怪(它們仍然是對象,但通常可以在堆棧中找到)。 – cHao 2012-02-27 07:13:43
看看我已經更新了答案...... – 2012-02-27 07:18:19
棧是地方的方法和局部變量存儲。
堆是存儲對象及其實例變量的存儲位置。
現在實例變量是任何變量,沒有「靜態」字段修飾符,它們是在類主體內部以及任何類的方法主體之外定義的。
只要它們的封閉對象在範圍內,實例變量就在範圍內。實例變量是包含它的對象的一部分,不能獨立於它。
希望所以它會清除你的概念。
- 1. 存儲在JVM中的對象的實例變量在哪裏?
- 2. zend框架中存儲的實例化對象在哪裏?
- 3. CakePHP存儲模型實例在哪裏?
- 4. Android:在哪裏存儲對象
- 5. 存儲對象的設置在哪裏?
- 6. git存儲blob對象在哪裏?
- 7. 此管理對象在哪裏存儲?
- 8. 在哪裏存儲objectstore和vwsession對象
- 9. const對象存儲在哪裏
- 10. 存儲在ggplot2對象中的比例顏色在哪裏?
- 11. 哪裏存儲對象信息django?
- 12. 存儲抽象對象的實例
- 13. 在哪裏存儲Servlet的單例?
- 14. MySQL在Amazon EC2實例上存儲在哪裏?
- 15. Transport Message Headers實際存儲在哪裏?
- 16. 在哪裏實際存儲asp.net mvc httpcookies?
- 17. 哪裏存儲在內存中的當前對象的引用?
- 18. 當它們被緩存時,AngularJS HTTP存儲對象在哪裏?
- 19. Laravel在哪裏存儲配置的實例邏輯?
- 20. JavaScript的類的實例方法存儲在哪裏?
- 21. 我應該在哪裏存儲全局數據庫實例?
- 22. 哪裏是存儲在ODB C++實施例
- 23. Rails助手模塊中的實例變量存儲在哪裏?
- 24. SQLite:對象實例的持久存儲
- 25. 如何在pylucene 3.5中實例化StandardAnalyzer? Version對象在哪裏?
- 26. SSL對稱密鑰存儲在哪裏?
- 27. SecKeyGeneratePair在哪裏存儲密鑰對?
- 28. 存儲在Java中的對象的條目數在哪裏
- 29. 我在哪裏實例化我的視圖模型對象?
- 30. DDD:在哪裏創建實體對象?
存儲對象的位置是實現細節。依靠它自己的危險。 – cHao 2012-02-27 07:12:21
@cHao:的確如此。我不知道.Net的引擎,但Google的V8 JavaScript引擎(JavaScript是另一個垃圾回收環境)足夠聰明,可以對代碼進行靜態分析,並確定對象只在函數中使用,然後纔會發佈 - 並將它們放在堆棧上,以便在返回時立即回收。 – 2012-02-27 07:31:28