JVM内存区域以及程序运行时数据在内存中的变化
JVM内存区域
JVM运行时数据区
定义: JVM在执行JAVA程序的时候会把它所管理的区域划分为若干个不同的虚拟区域进行管理.
JAVA引以为豪的就是他的自动化内存管理机制. 相比于C++的手动管理以及难以理解的指针来说, JAVA程序写起来就方便很多. 所以要深入理解JVM就要先深入理解内存虚拟化的概念.
在JVM中, 内存主要划分为堆, 栈, 方法区.
同时以线程的角度来划分也可以划分为线程私有区与线程共享区.
线程私有区: 单独的一个线程对应单独的一片区域. 线程与线程之间互不打扰.
线程共享区: 被所有线程共享, 且共享区唯一.
次数还设计一个直接内存的概念. 这个内存不属于JVM的运行时数据区, 但也会频繁被使用. 假设 计算机的内存有8个G, 虚拟机划分走了5个G, 那么直接内存就生下了3个G, JVM此时就可以借助一些工具来使用直接内存
JAVA的方法运行与虚拟机栈
线程私有
虚拟机栈
栈的数据结构: 先进后出(FILO)的数据结构
虚拟机栈的作用: 在JVM执行的过程中, 储存了当前线程所运行
共有 0 条评论