请高手详细的解答一下JAVA的堆,栈,方法区,谢谢。

如题所述

方法区(非堆):是各个线程共享的内存区域,它用于存储已被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码等数据。
java堆:是虚拟机中所管理的内存中区域最大的一块,是被所有线程共享的一块内存区域,在虚拟机启动时创建。此内存区域的唯一目的就是存放对象实例,几乎所有的对象实例都在这里分配内存。java堆是垃圾收集器管理的主要区域。
java虚拟机栈:线程私有的,它的生命周期与线程相同。每个方法被执行的时候都会同时创建一个栈帧,用于存储局部变量表、操作数栈、动态链接、方法出口等信息。每个方法被调用直至执行完成的过程,就对应着一个栈帧在虚拟机中从入栈到出栈的过程。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-09-24
马士兵的视频讲java基础那一节很系统的讲了内存,并有图例等,很好理解,建议百度一下自己下载下来看看
第2个回答  2012-09-25
相似回答