posts - 17,  comments - 14,  trackbacks - 0

      JAVA虚拟机中堆栈的设计是很漂亮的。

      他是先在栈内存开辟一块空间,假设为p1,然后再通过关键字new为p1在堆内存中开辟一块空间。当程序需要在栈内存p1指向的堆内存空间中读写数据时,要先找到栈内存中的p1,然后由p1指向该堆内存空间,再进行读写数据。

      为什么要这样设计呢?大概有两点:

  • 栈的存取速度特别快,仅次于寄存器。当程序要在内存中读写数据时,先找到栈,再通过栈的指向到堆内存中进行数据的读写。由于不用再遍历速度慢而且数据多的堆内存,所以程序的运行速度会更快。
  • 便于内存的回收。当程序的一些数据不用后,就会丢掉栈内存中相应的数据,此时以前指向的堆内存空间就没有了栈的指向,变成了垃圾。这时Java虚拟机的垃圾回收机制就会将这块没有栈指向的堆内存空间回收,供给以后的程序使用。
posted on 2010-10-12 03:29 Mineralwasser 阅读(83) 评论(0)  编辑  收藏

只有注册用户登录后才能发表评论。


网站导航:
 
<2025年4月>
303112345
6789101112
13141516171819
20212223242526
27282930123
45678910

常用链接

留言簿(1)

文章档案(21)

搜索

  •  

最新评论

阅读排行榜

评论排行榜