当前位置:编程学习 > JAVA >>

java内存的问题

 Java有几种存储区域?
* 寄存器
     -- 在CPU内部,开发人员不能通过代码来控制寄存器的分配,由编译器来管理
* 栈
     -- 在Windows下, 栈是向低地址扩展的数据结构,是一块连续的内存的区域,即栈顶的地址和栈的最大容量是系统预先规定好的。
     -- 优点:由系统自动分配,速度较快。
     -- 缺点:不够灵活,但程序员是无法控制的。
     -- 存放基本数据类型、开发过程中就创建的对象(而不是运行过程中)
* 堆
     -- 是向高地址扩展的数据结构,是不连续的内存区域
     -- 在堆中,没有堆栈指针,为此也就无法直接从处理器那边获得支持
     -- 堆的好处是有很大的灵活性。如Java编译器不需要知道从堆里需要分配多少存储区域,也不必知道存储的数据在堆里会存活多长时间。
* 静态存储区域与常量存储区域
     -- 静态存储区用来存放static类型的变量
     -- 常量存储区用来存放常量类型(final)类型的值,一般在只读存储器中
* 非RAM存储
     -- 如流对象,是要发送到另外一台机器上的
     -- 持久化的对象,存放在磁盘上
这些和java虚拟机里的内存有什么区别
Java虚拟机将其管辖的内存大致分三个逻辑部分:方法区(Method Area)、Java栈和Java堆 --------------------编程问答-------------------- 推荐你看一下这篇文章

http://www.360doc.com/content/11/0504/12/3903749_114271703.shtml
补充:Java ,  Java SE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,