微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

JVM内存模型

堆 (heap)

堆中存放对象,比如String,堆是线程共有的

栈 (Stack)

栈中存放基础数据类型以及对堆中对象的引用,栈是线程私有的

程序计数器 (pc Register)

程序计数器就是记录当前需要执行的指令地址,就是说每个线程到底执行到哪里了(存档),
所占用空间非常小

方法区 (method Area)

方法区是JVM抽象的规范,元空间和永久代是对该抽象的具体实现,JDK8 之前实现方式
是永久代,当时永久代是堆空间的一部分。
jDK8以后,实现方式是元空间,元空间没有使用堆内存,而是与堆不相连的本地内存区域
理论上,系统内存有多大,元空间就有多大,如果手动限制了大小,也会出现OOM异常

本地方法栈(native method stacks)

本地方法的栈,而不是本地的方法栈,为本地方法提供了专门的栈空间,可以让java来调
用其他类型的语言

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐