posts - 30,  comments - 28,  trackbacks - 0

          Stack 和Heap的差別,上次華為研究生筆試題就考過。C語言的我很清楚:
          ?Stack: automatic variables within functions
          ? Heap: global variables (storage class external), and static variables

          簡而言之,最大的不同是:前者是函數(shù)變量的空間,后者是程序變量的空間

          另外,Stack上分配內(nèi)存是安全的。而Heap上分配內(nèi)存則沒那么爽了。調用malloc分配內(nèi)存,是在Heap上開辟空間。一定要注意釋放。否則老是memory leak
          ?
          昨天有人問我JVM中的Stack和Heap的差別,當時心不在焉地照搬C語言敷衍了事。
          中午起床,沒事閑著看帖子。無意中想起這個問題,在Google搜索了一番。發(fā)現(xiàn)昨天的回答出了問題:
          “?It is useful to know that these two different kinds of memory exist in Java. Stack memory is the program's memory, and heap memory resides outside of the program.”

          Stack是程序內(nèi)存,Heap內(nèi)存存在于程序之外。這樣子看起來和C語言中地Heap有些像誒(C語言中的Heap也是在mian()之外的)。再仔細看看

          Stack memory stores primitive types and the addresses of objects. The object values are stored in heap memory.

          類實例存在于Heap。類實例的的指針在Stack中存放。難怪JVM沒有text segment ,在Stack就囊括了text segment

          這樣做的好處,就是為了實現(xiàn)Java的垃圾回收機制。任何的類對象實例都在Heap中,在Stack中有它們的引用。當所以的線程都不在需要某個引用時,JVM的那個資源回收線程就會把該實例從Heap當中清楚掉。

          文章告訴我,回收線程要做全局的檢測來確定某個實例是否已經(jīng)“無用”了。這樣子,我們可以在代碼上做些工作,來給回收線程加速。
          Test t = new Test();
          ?t.someAction();
          ?// all done
          ?t = null;
          實例t不再有用時,就把他置為null,告訴JVM:你不用在Stack和Heap之間自己校驗啦,我已經(jīng)做好了標記,放心回收吧。

          小結:Stack: Primitive data types(primitive types), the addresses of objects(=references).
          ??????????????????????? Heap:? objects.
          前者:基本類型和實例地址(引用),后者:類實例

          posted on 2006-07-31 16:28 murainwood 閱讀(749) 評論(2)  編輯  收藏 所屬分類: Java讀書筆記


          FeedBack:
          # re: Stack and Heap
          2006-08-01 11:17 | 小文
          你寫的東東不錯
          蠻有意思的  回復  更多評論
            
          # re: Stack and Heap
          2006-10-11 17:38 | QQ:199976057
          深入潛出,不錯!!有空交流一下
          有個問題就是text segment該怎么理解呢
          我的QQ199976057  回復  更多評論
            
          <2006年7月>
          2526272829301
          2345678
          9101112131415
          16171819202122
          23242526272829
          303112345

          如果真的給你一片天,你敢不敢要?

          常用鏈接

          留言簿(3)

          隨筆分類

          隨筆檔案

          相冊

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 龙泉市| 阿克苏市| 石首市| 长治县| 镇沅| 泽普县| 仙居县| 静海县| 上高县| 平江县| 墨脱县| 临汾市| 龙海市| 桦川县| 陆丰市| 都江堰市| 栖霞市| 改则县| 呼图壁县| 普兰县| 常宁市| 盐城市| 苗栗市| 澄城县| 吉安县| 漠河县| 宝兴县| 永修县| 新源县| 仲巴县| 霸州市| 老河口市| 肇源县| 镇雄县| 涞水县| 德庆县| 贵南县| 马鞍山市| 资中县| 连山| 远安县|