想要成为一个合格的JAVA程序员,那么必须了解JVM内存结构。
这篇文章从亿图图示模板社区中整理了各行业用户分享的JVM内存结构图,有简略的,也有详细的,文末也对JVM的基础概念进行了整理归纳,相信对刚入门的小伙伴会有一定的帮助。
JVM内存结构图合集
源文件传送门>>>Jvm内存模型 - 在线模板社区https://www.edrawmax.cn/templates/file/1011253
源文件传送门>>>JVM内存模型 - 在线模板社区
源文件传送门>>>JVM体系结构 - 在线模板社区
源文件传送门>>>java内模型 - 在线模板社区
JVM基础概念整理
如果理解了前面几张图,JVM的内存结构基本掌握了一半。不难看出,JVM内存由五部分组成,分别为程序计数器、虚拟机栈、本地方法栈、方法区、堆。
1)程序计数器(线程私有,无GC,Garbage Collection):指向当前线程正在执行的字节码的地址、行号。
2)虚拟机栈(线程私有,无GC):存储当前线程运行方法所需要的数据、指令、返回地址。每一个方法都对应一个栈帧,可以通过配置Xss来配置栈帧的大小。
3)本地方法栈(线程私有,无GC):和虚拟机栈类似。不同的是,本地方法栈存储的是本地方法的数据。
4)方法区(线程共享):被所有方法线程共享的一块内存区域。用于存储已经被虚拟机加载的类信息、常量、静态变量等。这个区域的内存回收目标主要针对常量池的回收和堆类型的卸载。
5)Java 堆(线程共享,要GC):被所有线程共享的一块内存区域,在虚拟机启动的时候创建,用于存放对象实例。一个JVM实例只有一个堆内存。
最后,附上一张jvm基础概念整理图
图片模糊的话,可以点击图片“查看原图”,或者直接点击下方源文件查看高清大图▼
java jvm 基础概念整理归纳https://link.zhihu.com/?target=https%3A//www.edrawmax.cn/templates/file/1014383