JVM内存模型

堆 (heap)

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

栈 (Stack)

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

程序计数器 (pc Register)

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

方法区 (method Area)

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

本地方法栈(native method stacks)

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

相关文章

jinfo 命令可以用来查看 Java 进程运行的 JVM 参数,命令如下...
原文链接:https://www.cnblogs.com/niejunlei/p/5987611.ht...
java 语言, 开发者不能直接控制程序运行内存, 对象的创建都是...
jvm
1.jvm的简单抽象模型:  2.类加载机制     双亲委派模...
堆外内存JVM启动时分配的内存,称为堆内存,与之相对的,在代...
1.springboot和tomcat2.springcloud的请求如何通过网关鉴权?...