JVM中三种内存区域

来源:互联网 发布:永久免费域名注册 编辑:程序博客网 时间:2024/06/05 03:43

1、栈 snack

先进后出,栈为每一个方法分配一个帧,当前调用的方法或局部变量总是位于栈顶,当调用一个方法时会开辟一个新的帧并压栈。当方法正常返回或者有异常退出时,会出栈。不可被多个线程共享

存放局部变量 方法返回后局部变量便被回收(放对象的引用)

2、堆 heap

所有new出的对象(成员变量 成员方法)、包括数组、动态分配空间,效率相当低

3、方法区(运行数据区 静态代码区)

存放一些静态(不变的数据 和 static修饰的数据)的数据;不变的数据 包括 类的字节码文件(.class)


不同的对象分配不同的内存空间,但是不同的对象 如果对象的类型相同  那么共享类内的成员方法。


原创粉丝点击