你了解JVM内存结构吗?我给大家分享一下JVM内存结构。它主要由两个子系统组成,这两个组件分别是Runtimedataarea(运行时数据区)和Nativeinterface(本地接口)组件。)组件
JVM内存结构
我最近研究了一些Java内存泄漏,并与一些最初是我的朋友讨论了它们。经过广泛的研究,我找到了它。JVM中还有很多以前不为人知的细节。以下是一些细节。为了分析,我们首先看一下JVM的内部结构——
Classloader子系统的作用
根据给定完全限定的类名(例如javalangObject)。Java程序员可以扩展javalangClassLoader类来编写自己的ClassLoader
执行引擎子系统角色
与原生库的交互是其他编程语言与之交互的接口。当你调用原生方法时,你就进入了一个不再受虚拟机限制的新世界。因此,本土化也很容易。heapOutOfMemory无法被JVM组件控制
RuntimeDataArea
这就是我们通常所说的JVM内存,主要分为五个部分——
Heap只有一个Java虚拟实例中的堆区
MethodArea加载的类的信息保存在Methodarea的内存中,虚拟机加载某个类型时,会使用一个Loader类,定位到对应的类文件,然后读取JavaStack虚拟机(javastack)只会在框架单元中直接执行Javastack上的两个操作。压入或弹出堆栈
程序计数器(ProgramCounter)每个线程都有自己的PC寄存器,在线程启动时创建,该寄存器始终指向下一条要执行的指令。。地址这里的地址可以是本地指针,也可以是方法区中方法起始指令对应的偏移量
Nativemethodstack(本地方法栈)存放的是方法根公式进入区域的地址
lixixinzhi/Articles/programs/Java/hx/201311/26038
上一篇:内存条4条全部插满可以吗
下一篇:jvm内存参数配置