jvm01--java内存区域

在阅读《深入理解java虚拟机--周志明》时,第二章没有十分清楚的解释新生代,老年代,永久代的详细概念。通过网上浏览,渐渐梳理清晰了。


java的内存模型,分别为

【堆,方法区(非堆)】→ 线程共享

【虚拟机栈,本地方法栈,程序计数器】→线程隔离

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

程序计数器,记录线程执行位置

虚拟机栈,java方法调用时会创建一个栈帧(其中有局部变量表,由此得出方法的局部变量(如基本类型,对象引用等)是创建在栈中的

本地方法栈,与虚拟机栈类似,不同的是为Native方法(书中没有介绍什么是Native方法,简单地讲,一个Native Method就是一个java调用非java代码的接口。一个Native Method是这样一个java的方法:该方法的实现由非java语言实现,比如C

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

java堆,存放对象实例和数组

方法区,存储加载的类信息、常量、静态变量、编译后代码  

--运行时常量池(在方法区中),保存class符号引用以及直接引用

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

java堆分成Eden,Survivor,Old

方法区在JDK7中分为PermGen(永久代),CodeCache,而在JDK8中,取消了永久代的概念,变成了元空间MetaSpace。


Java8的JVM持久代 - 何去何从?

用Jcosole或者Jvisualvm可以看出来


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值