***JVM 的知识体系中内存结构是“C位”***,所以我们学习的时候需要特别关注, 其他如垃圾回收,性能调优,类加载等,所有的知识体系都跟内存结构有关。

#运行时数据区域
运行时数据区的定义:Java 虚拟机在执行 Java 程序的过程中会把它所管理的内存划分为若干个不同的数据区域 Java 引以为豪的就是它的自动内存管理机制。相比于 C++的手动内存管理、复杂难以理解的指针等,Java 程序写起来就方便的多。 所以要深入理解 JVM 必须理解内存虚拟化的概念。 在 JVM 中,JVM 内存主要分为堆、程序计数器、方法区、虚拟机栈和本地方法栈等。 同时按照与线程的关系也可以这么划分区域:
线程私有区域:一个线程拥有单独的一份内存区域。
线程共享区域:被所有线程共享,且只有一份。 这里还有一个直接内存,这个虽然不是运行时数据区的一部分,但是会被频繁使用。你可以理解成没有被虚拟机化的操作系统上的其他内存(比如操作 系统上有 8G 内存,被 JVM 虚拟化了 3G,那么还剩余 5G, JVM 是借助一些工具使用这 5G 内存的,这个内存部分称之为直接内存

本文探讨了JVM的运行时数据区域,包括堆、程序计数器、方法区、虚拟机栈和本地方法栈等,并强调了内存结构在JVM中的核心地位。同时提到了垃圾回收、性能调优和类加载等关键概念,这些都与内存管理密切相关。直接内存虽不属于标准运行时数据区,但在实际操作中也扮演着重要角色。
1495

被折叠的 条评论
为什么被折叠?



