2.1JVM规范 JVM specification对JWM内存的描述 首先我们来了解JVM specification中的JVM整体架构。如下图: CLASS FILES CLASS LOADER RUNTIME DATA AREA METHOD AREA JAVA STACK NATIVE METHOD STACK HEAP PROGRAM COUNTER REGISTER NATIVE NATIVE EXECUTION ENGINE INTERFACE LIBRARIES RUNTIME DATA AREAS SHARED AMONG ALL THREADS THREAD SPECIFIC RUNTIME DATA AREAS javabeanz.wordpress.com 主要包括两个子系统和两个组件:Class loader(类装载器)子系统, Execution engine(执行引擎)子系统;Runtime data area(运行时数据区域) 组件,Native interface(本地接口)组件。 Class loader子系统的作用:根据给定的全限定名类名(如 java.lang.Object)来装载class文件的内容到Runtime data area中的method area(方法区域)。Javsa程序员可以extends java.lang.ClassLoader类来写自 己的Class1 oader. Execution engine子系统的作用:执行classes中的指令。任何JVM specification实现(JDK)的核心是Execution engine,换句话说:Sun的JDK 和IBWM的JDK好坏主要取决于他们各自实现的Execution engine的好坏。每个 运行中的线程都有一个Execution engine的实例。 Native interface组件:与native libraries交互,是其它编程语言交 互的接口。 Runtime data area组件:这个组件就是JVM中的内存。下面对这个部分 进行详细介绍。2.1 JVM 规范 JVM specification 对 JVM 内存的描述 首先我们来了解 JVM specification 中的 JVM 整体架构。如下图: 主要包括两个子系统和两个组件: Class loader(类装载器) 子系统, Execution engine(执行引擎) 子系统;Runtime data area (运行时数据区域) 组件, Native interface(本地接口)组件。 Class loader 子系统的作用 :根据给定的全限定名类名(如 java.lang.Object)来装载 class 文件的内容到 Runtime data area 中的 method area(方法区域)。Javsa 程序员可以 extends java.lang.ClassLoader 类来写自 己的 Class loader。 Execution engine 子系统的作用 :执行 classes 中的指令。任何 JVM specification 实现(JDK)的核心是 Execution engine, 换句话说:Sun 的 JDK 和 IBM 的 JDK 好坏主要取决于他们各自实现的 Execution engine 的好坏。每个 运行中的线程都有一个 Execution engine 的实例。 Native interface 组件 :与 native libraries 交互,是其它编程语言交 互的接口。 Runtime data area 组件:这个组件就是 JVM 中的内存。 下面对这个部分 进行详细介绍