posts - 17,  comments - 14,  trackbacks - 0

                JAVA虛擬機中堆棧的設計是很漂亮的。

                他是先在棧內存開辟一塊空間,假設為p1,然后再通過關鍵字new為p1在堆內存中開辟一塊空間。當程序需要在棧內存p1指向的堆內存空間中讀寫數據時,要先找到棧內存中的p1,然后由p1指向該堆內存空間,再進行讀寫數據。

                為什么要這樣設計呢?大概有兩點:

          • 棧的存取速度特別快,僅次于寄存器。當程序要在內存中讀寫數據時,先找到棧,再通過棧的指向到堆內存中進行數據的讀寫。由于不用再遍歷速度慢而且數據多的堆內存,所以程序的運行速度會更快。
          • 便于內存的回收。當程序的一些數據不用后,就會丟掉棧內存中相應的數據,此時以前指向的堆內存空間就沒有了棧的指向,變成了垃圾。這時Java虛擬機的垃圾回收機制就會將這塊沒有棧指向的堆內存空間回收,供給以后的程序使用。
          posted on 2010-10-12 03:29 Mineralwasser 閱讀(86) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          <2025年7月>
          293012345
          6789101112
          13141516171819
          20212223242526
          272829303112
          3456789

          常用鏈接

          留言簿(1)

          文章檔案(21)

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 伽师县| 玉树县| 洛南县| 苍溪县| 乌兰察布市| 上虞市| 合川市| 屯昌县| 都兰县| 福安市| 翁牛特旗| 灌阳县| 兴仁县| 文水县| 益阳市| 社旗县| 松溪县| 安丘市| 平度市| 信丰县| 龙南县| 锡林浩特市| 崇明县| 阜宁县| 玉龙| 赤水市| 宝山区| 方正县| 夹江县| 交城县| 阳高县| 攀枝花市| 青岛市| 墨脱县| 如皋市| 德昌县| 浪卡子县| 建宁县| 柘荣县| 阳朔县| 双牌县|