Java中的内存分配

Java程序运行时有6个地方可以存储数据,它们分别是寄存器(寄存器位于CPU中)、栈、堆、静态存储、常量存储和非RAM存储,主要是堆与栈的存储。

栈与堆都是Java用来在内存中存放数据的地方。与C++不同,Java自动管理栈和堆,程序员不能直接地设置栈或堆。栈的优势是,存取 速度比堆要快,仅次于直接位于CPU中的寄存器。另外,栈数据可以共享。但缺点是,存在栈中的数据大小与生存期必须是确定的,缺乏灵活性。堆的优势是可以 动态地分配内存大小,生存期也不必事先告诉编译器,Java的垃圾收集器会自动收走这些不再使用的数据。但缺点是,由于要在运行时动态分配内存,存取速度 较慢。

http://blog.sina.com.cn/s/blog_8a18c33d0100zo1x.html

posted on 2014-02-16 00:40  misyx  阅读(141)  评论(0编辑  收藏  举报