关于JVM内存结构的图网上很多,也许你看完后不明觉厉 却很难形成自己的记忆。
这图希望能够帮助大家清晰地看明白JVM的内存结构与基本要素,形成一张记忆拼图,避免每次学习时都重复阅读大段却难以记忆的文字。
关于这图有几个点需要说明:
1.尽管花了不少精力画这一张看似简单的图,但还是很难保持一步到位。
所以强烈邀请各位看到破绽或者疑问的朋友留言帮助我完善,一起帮助更多人。
2.方法区是堆的逻辑组成部分
3.方法区与永久代是不是同一个东西?
不是. 方法区是标准,永久代是对方法区标准的实现
《Java虚拟机规范》规定了方法区标准,Sun公司HotSpot虚拟机使用永久代来实现方法区
4.在jdk8中 永久代被元空间(Metaspace)替代了,方法区存放描述性信息,即元数据,元空间名字更为贴切
所以 -XX:PermSize
参数在jdk8中将是无效的 使用 -XX:MetaspaceSize
5.几个异常
StackOverflowError:
线程请求的栈深度大于虚拟机允许的栈深度,调用链路太长,递归时容易出现
java.lang.OutOfMemoryError: Java heap space:
栈内空间不足,对象过大,容器(list,map)存储数据过大。 堆内存占用内存 >= Xmx设置值
java.lang.OutOfMemoryError: PermGen(<jdk1.8) --- java.lang.OutOfMemoryError: Metadata space(jdk1.8):
持久代内存不足,反射应用广泛,通常是反射重复加载过多class元数据导致。方法区占用内存>=MaxPermSize设置值
相关推荐
jvm的内存结构图,详细的介绍了jvm运行的模型流程,包括jvm运行的五大内存分布。通过什么是jvm什么是java编程程序的=中的三个兄弟jdk.jvm和jre的区别
2019最新深入理解JVM内存结构及运行原理(JVM调优)高级核心课程视频教程下载。JVM是Java知识体系中的重要部分,对JVM底层的了解是每一位Java程序员深入Java技术领域的重要因素。本课程试图通过简单易懂的方式,系统...
面试准备资料:jvm运行时内存、redis
详细介绍了JVM 内存管理相关知识 内存空间( VM运行时数据区域) ◦ 内存结构 ◦ 内存空间 内存分配 内存回收(GC) 内存分析工具
内存结构 、 类加载 、 类文件结构 、 垃圾回收 、 执行 引擎 、 性能调优 、 监控 等等这些知识,但所有的功能都是围绕着 内存结构 展开的,因为我们编译后的代码信息在运行过程中都是存在于JVM自身...
java工程师高级面试之JVM虚拟机底层原理篇:VM种类,内存结构,运行原理,垃圾回收算法,各种垃圾回收器等。
2019最新深入理解JVM内存结构及运行原理(JVM调优)高级核心课程视频教程下载。JVM是Java知识体系中的重要部分,对JVM底层的了解是每一位Java程序员深入Java技术领域的重要因素。本课程试图通过简单易懂的方式,系统...
下面我们从每个区域的用途,涉及的问题等方面来简单的说一说JVM的内存结构。 方法区 作用:用于存放已被加载的类信息、常量、静态变量、即时编译器(JIT)编译后的代码等数据。 所有线程共享方法区。 方法区内存可以...
3、JVM运行流程 4、JVM生命周期 5、三大流行的JVM 2.2、JVM体系结构 1、类加载器 2、执行引擎 3、运行时数据区 4、本地库接口 2.3、JVM内存参数调整及监控 1、JVM之内存调整 2、JVM监控工具之Jconsole 3、JVM监控...
JVM内存结构Java 代码是要运行在虚拟机上的,而虚拟机在执行 Java 程序的过程中会把所管理的内存划分为若干个不同的数据区域,这些区域都有各自的用途。如果
* 在内存结构章节,能够学习掌握 JVM内存溢出现象,堆栈内存结构,利用内存诊断工具排查问题。彻底分析 StringTable的相关知识与性能优化,掌握直接内存分配原理和释放手段。 * 在垃圾回收章节,不仅会介绍垃圾回收...
它采用了“一次编写,到处运行”的原则,即一次编写的程序可以在不同的操作系统上运行,这得益于Java虚拟机(JVM)的存在。JVM是Java的核心组成部分,它可以将Java代码解释成特定平台上的机器码,从而实现跨平台运行...
JVM运行机制简介 堆、栈、方法区等 JVM启动流程 内存模型和volatile实例 解释和编译运行的概念 介绍JVM的内部结构、启动流程以及内存模型。并介绍JVM字节码的执行方式。 第三课 常用JVM参数 堆的分配参数 栈分配及...
最新jvm面试题合集,涵盖JVM运行时数据区、垃圾回收算法、垃圾回收器、类加载机制、JIT即时编译等核心知识点及常见面试题,一书在手,天下我有。 JVM内存结构:JVM的内存结构主要包括堆内存、方法区、栈(包括Java...
那JVM的内存结构到底是如何呢?JVM做为一个运行在操作系统上,但又独立于os运行的平台,它的内存至少应该包括象寄存器、堆栈等区域。 JVM在运行时将数据划分为了6个区域来存储,而不仅仅是大家熟知的Heap区域,...
JVM的堆是Java对象的活动空间,程序中的类的对象从中分配空间,其存储着正在运行着的应用程序用到的所有对象。这些对象的建立方式就是那些new一类的操作,当对象无用后,是GC来负责这个无用的对象(地球人都知道)。
常量池静态常量池即*.class文件中的常量池,用于存放字面量和符号引用运行时常量池是jvm运行期间,存储常量的数据结构运行时常量池概念运行时常量池(Runti
主要包含:JVM概述,内存结构讲解,对象实例化,垃圾回收,类的加载,程序编译,代码的优化,性能监控与调优. JVM:全称 Java Virtual Machine,一个虚拟计算机,Java 程序的运行环境(Java二进制字节码的运行环境) 特点:...
文件总结了JVM的体系结构:四大块,类装载子系统(class loader subsystem),执行引擎子系统(Executionengine子系统),垃圾回收系统(gc),运行时数据区(JVM内存)。
JVM(Java虚拟机)是Java程序的运行环境,它是一个虚拟的计算机,负责将Java字节码解释成机器码并执行。JVM提供了内存管理、垃圾回收、安全性等功能,使得Java程序具有跨平台性。JVM的结构包括类加载器、解释器、...