`
阅读更多

关于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设置值

 

  • 大小: 138.6 KB
  • 大小: 30.3 KB
  • 大小: 30.4 KB
分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    jvm的内存结构图的ppt模型分析

    jvm的内存结构图,详细的介绍了jvm运行的模型流程,包括jvm运行的五大内存分布。通过什么是jvm什么是java编程程序的=中的三个兄弟jdk.jvm和jre的区别

    深入理解JVM内存结构及运行原理全套视频加资料

    2019最新深入理解JVM内存结构及运行原理(JVM调优)高级核心课程视频教程下载。JVM是Java知识体系中的重要部分,对JVM底层的了解是每一位Java程序员深入Java技术领域的重要因素。本课程试图通过简单易懂的方式,系统...

    面试资料.zip(并发编程\数据结构和算法\jvm运行时内存)

    面试准备资料:jvm运行时内存、redis

    JVM-内存管理 2012-12.pdf

    详细介绍了JVM 内存管理相关知识 内存空间( VM运行时数据区域) ◦ 内存结构 ◦ 内存空间 内存分配 内存回收(GC) 内存分析工具

    图解JVM的内存结构及字符串常量池方法详解.docx

    内存结构 、 类加载 、 类文件结构 、 垃圾回收 、 执行 引擎 、 性能调优 、 监控 等等这些知识,但所有的功能都是围绕着 内存结构 展开的,因为我们编译后的代码信息在运行过程中都是存在于JVM自身...

    Java高级面试JVM虚拟机、内存结构、垃圾回收机制

    java工程师高级面试之JVM虚拟机底层原理篇:VM种类,内存结构,运行原理,垃圾回收算法,各种垃圾回收器等。

    深入理解JVM内存结构及运行原理全套视频加资料.txt

    2019最新深入理解JVM内存结构及运行原理(JVM调优)高级核心课程视频教程下载。JVM是Java知识体系中的重要部分,对JVM底层的了解是每一位Java程序员深入Java技术领域的重要因素。本课程试图通过简单易懂的方式,系统...

    笔记 — JVM内存结构

    下面我们从每个区域的用途,涉及的问题等方面来简单的说一说JVM的内存结构。 方法区 作用:用于存放已被加载的类信息、常量、静态变量、即时编译器(JIT)编译后的代码等数据。 所有线程共享方法区。 方法区内存可以...

    很入理解JVM体系

    3、JVM运行流程 4、JVM生命周期 5、三大流行的JVM 2.2、JVM体系结构 1、类加载器 2、执行引擎 3、运行时数据区 4、本地库接口 2.3、JVM内存参数调整及监控 1、JVM之内存调整 2、JVM监控工具之Jconsole 3、JVM监控...

    msJavaCoder#msJava#理解JVM内存结构与Java内存模型1

    JVM内存结构Java 代码是要运行在虚拟机上的,而虚拟机在执行 Java 程序的过程中会把所管理的内存划分为若干个不同的数据区域,这些区域都有各自的用途。如果

    Java进阶教程解密JVM视频教程

    * 在内存结构章节,能够学习掌握 JVM内存溢出现象,堆栈内存结构,利用内存诊断工具排查问题。彻底分析 StringTable的相关知识与性能优化,掌握直接内存分配原理和释放手段。 * 在垃圾回收章节,不仅会介绍垃圾回收...

    Java 虚拟机学习笔记:Java 内存区域,垃圾收集,内存分配与回收策略,JVM 调优,文件结构,类加载机制,Java 程序

    它采用了“一次编写,到处运行”的原则,即一次编写的程序可以在不同的操作系统上运行,这得益于Java虚拟机(JVM)的存在。JVM是Java的核心组成部分,它可以将Java代码解释成特定平台上的机器码,从而实现跨平台运行...

    深入JVM内核 - 原理、诊断与优化

    JVM运行机制简介 堆、栈、方法区等 JVM启动流程 内存模型和volatile实例 解释和编译运行的概念 介绍JVM的内部结构、启动流程以及内存模型。并介绍JVM字节码的执行方式。 第三课 常用JVM参数 堆的分配参数 栈分配及...

    最新java面试专题01-JVM

    最新jvm面试题合集,涵盖JVM运行时数据区、垃圾回收算法、垃圾回收器、类加载机制、JIT即时编译等核心知识点及常见面试题,一书在手,天下我有。 JVM内存结构:JVM的内存结构主要包括堆内存、方法区、栈(包括Java...

    浅析JVM内存结构和6大区域

    那JVM的内存结构到底是如何呢?JVM做为一个运行在操作系统上,但又独立于os运行的平台,它的内存至少应该包括象寄存器、堆栈等区域。  JVM在运行时将数据划分为了6个区域来存储,而不仅仅是大家熟知的Heap区域,...

    JVM垃圾回收机制与GC性能调优

    JVM的堆是Java对象的活动空间,程序中的类的对象从中分配空间,其存储着正在运行着的应用程序用到的所有对象。这些对象的建立方式就是那些new一类的操作,当对象无用后,是GC来负责这个无用的对象(地球人都知道)。

    RodJohn#jvm#内存区域_运行时常量池1

    常量池静态常量池即*.class文件中的常量池,用于存放字面量和符号引用运行时常量池是jvm运行期间,存储常量的数据结构运行时常量池概念运行时常量池(Runti

    详细讲解了jvm在java中应用

    主要包含:JVM概述,内存结构讲解,对象实例化,垃圾回收,类的加载,程序编译,代码的优化,性能监控与调优. JVM:全称 Java Virtual Machine,一个虚拟计算机,Java 程序的运行环境(Java二进制字节码的运行环境) 特点:...

    JVM深入理解.xmind

    文件总结了JVM的体系结构:四大块,类装载子系统(class loader subsystem),执行引擎子系统(Executionengine子系统),垃圾回收系统(gc),运行时数据区(JVM内存)。

    JVM 相关知识的脑图介绍

    JVM(Java虚拟机)是Java程序的运行环境,它是一个虚拟的计算机,负责将Java字节码解释成机器码并执行。JVM提供了内存管理、垃圾回收、安全性等功能,使得Java程序具有跨平台性。JVM的结构包括类加载器、解释器、...

Global site tag (gtag.js) - Google Analytics