JVM运行时数据区域学习

简介: 5.永久代属于HotSpot,JDK1.8废弃了永久代,取而代之的是Metaspace(元空间),元空间使用的是直接内存,不使用虚拟机内存;4.堆内存 = 新生代(1/3) + 老年代(2/3);1.本地方法栈和虚拟机栈并非所有的JVM都有区分,不是强制规定,HotSpot中本地方法栈和虚拟机栈是合在一起的;6.在HotSpot中字符串常量池在jdk1.8由原来的方法区(永久代)转移到java堆中.2.方法区不等于永久代,HotSpot使用永久代来实现方法区,但在其他的JVM中并不适用;

JVM运行时数据区域思维导图

注:
    1.本地方法栈和虚拟机栈并非所有的JVM都有区分,不是强制规定,HotSpot中本地方法栈和虚拟机栈是合在一起的;
    2.方法区不等于永久代,HotSpot使用永久代来实现方法区,但在其他的JVM中并不适用;
    3.一般来说,对象实例和数组都在堆上分配但是不是绝对的.随着JIT编译器的发展与逃逸分析技术逐渐成熟,栈上分配,标量替换优化技术将会导致一下微妙的变化.参考深入JVM虚拟机,参考hollischuang大神的文章:对象和数组并不都是在堆上分配内存的;
    4.堆内存 = 新生代(1/3) + 老年代(2/3);新生代 = Eden + from survivor + to survivor.
    5.永久代属于HotSpot,JDK1.8废弃了永久代,取而代之的是Metaspace(元空间),元空间使用的是直接内存,不使用虚拟机内存;
    6.在HotSpot中字符串常量池在jdk1.8由原来的方法区(永久代)转移到java堆中.

相关文章
|
5天前
|
存储 缓存 算法
深入浅出JVM(二)之运行时数据区和内存溢出异常
深入浅出JVM(二)之运行时数据区和内存溢出异常
|
6天前
|
存储 缓存 Java
JVM 运行时内存篇
JVM 运行时内存篇
7 0
|
7天前
|
存储 监控 安全
JVM工作原理与实战(十九):运行时数据区-方法区
JVM作为Java程序的运行环境,其负责解释和执行字节码,管理内存,确保安全,支持多线程和提供性能监控工具,以及确保程序的跨平台运行。本文主要介绍了方法区、方法区在Java虚拟机的实现、类的元信息、运行时常量池、字符串常量池、静态变量的存储等内容。
12 0
|
7天前
|
存储 Arthas 监控
JVM工作原理与实战(十八):运行时数据区-堆
JVM作为Java程序的运行环境,其负责解释和执行字节码,管理内存,确保安全,支持多线程和提供性能监控工具,以及确保程序的跨平台运行。本文主要介绍了运行时数据区、堆介绍、堆的关键参数等内容。
11 0
|
7天前
|
存储 监控 Java
JVM工作原理与实战(十七):运行时数据区-栈内存溢出
JVM作为Java程序的运行环境,其负责解释和执行字节码,管理内存,确保安全,支持多线程和提供性能监控工具,以及确保程序的跨平台运行。本文主要介绍了栈内存溢出、设置虚拟机栈的大小等内容。
12 0
|
7天前
|
存储 监控 安全
JVM工作原理与实战(十六):运行时数据区-Java虚拟机栈
JVM作为Java程序的运行环境,其负责解释和执行字节码,管理内存,确保安全,支持多线程和提供性能监控工具,以及确保程序的跨平台运行。本文主要介绍了运行时数据区、Java虚拟机栈等内容。
11 0
|
7天前
|
存储 监控 安全
JVM工作原理与实战(十五):运行时数据区-程序计数器
JVM作为Java程序的运行环境,其负责解释和执行字节码,管理内存,确保安全,支持多线程和提供性能监控工具,以及确保程序的跨平台运行。本文主要介绍了运行时数据区、程序计数器等内容。
11 0
|
14天前
|
存储 Java
深入理解Java虚拟机:JVM内存模型
【4月更文挑战第30天】本文将详细解析Java虚拟机(JVM)的内存模型,包括堆、栈、方法区等部分,并探讨它们在Java程序运行过程中的作用。通过对JVM内存模型的深入理解,可以帮助我们更好地编写高效的Java代码,避免内存溢出等问题。
|
3天前
|
Java Linux Arthas
linux上如何排查JVM内存过高?
linux上如何排查JVM内存过高?
20 0
|
5天前
|
存储 缓存 算法
深入浅出JVM(十四)之内存溢出、泄漏与引用
深入浅出JVM(十四)之内存溢出、泄漏与引用