jvm内存分配(1)

做个java程序员n多年了,一直以来没搞明白jvm的内存分配。静下心来琢磨下。

下面的内容全部来自网络,基本无原创。只是学习笔记而已。

 

1  JVM整体架构

 

JVM specification中的JVM整体架构。

如下图



jvm内存分配(1)

 


jvm内存分配(1)
 主要包括两个子系统和两个组件: Class loader(类装载器) 子系统,Execution engine(执行引擎) 子系统;Runtime data area (运行时数据区域)组件, Native interface(本地接口)组件。

    1.1 Class loader子系统的作用

根据给定的全限定名类名( java.lang.Object)来装载class文件的内容到 Runtime data area中的method area(方法区域)Javsa程序员可以extends java.lang.ClassLoader类来写自己的Class loader
     1.2 Execution engine子系统的作用

执行classes中的指令。任何JVM specification实现(JDK)的核心是Execution engine 换句话说:Sun JDK IBMJDK好坏主要取决于他们各自实现的Execution  engine的好坏。每个运行中的线程都有一个Execution engine的实例。
    
1.3 Native interface组件

native libraries交互,是其它编程语言交互的接口。 
    1.4  Runtime data area 组件:

这个组件就是JVM中的内存 下面对这个部分进行详细介绍。

你可能感兴趣的:(jvm内存)