本帖最后由 xu6148152 于 2014-1-17 16:28 编辑
1方法区中分静态区和非静态区,堆内存是动态的,JVM的垃圾回收机制会回收这片区域中无用的内存
2栈:主函数运行的代码 堆:你用new分配的代码 方法区:方法。静态变量。
3好像还有寄存器的。
JVM 会把申请的内存从逻辑上划分为三个区域,即:方法区、堆与栈。
方法区:方法区默认最大容量为64M,Java虚拟机会将加载的java类存入方法区,保存类的结构(属性与方法),类静态成员等内容。
堆:默认最大容量为64M,堆存放对象持有的数据,同时保持对原类的引用。可以简单的理解为对象属性的值保存在堆中,对象调用的方法保存在方法区。
栈:栈默认最大容量为1M,在程序运行时,每当遇到方法调用时,Java虚拟机就会在栈中划分一块内存称为栈帧(Stack frame),栈帧中的内存供局部变量(包括基本类型与引用类型)使用,当方法调用结束后,Java虚拟机会收回此栈帧占用的内存。
|