Java教程

JVM内存模型

本文主要是介绍JVM内存模型,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

堆 (heap)

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

栈 (Stack)

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

程序计数器 (pc Register)

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

方法区 (method Area)

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

本地方法栈(native method stacks)

本地方法的栈,而不是本地的方法栈,为本地方法提供了专门的栈空间,可以让java来调
用其他类型的语言
这篇关于JVM内存模型的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!