虚拟机的体系结构

要想了解虚拟机,就需要对虚拟机有整体的认识,下图是纯手工打造.转载请注明出处.

虚拟机主要是由类加载系统,运行时数据区域(虚拟机管理的内存区域),字节码执行引擎,本地方法接口等组成.见图.


 
 我们来逐一介绍虚拟机体系结构中的部分.

1.类加载系统:类加载系统负责将字节码文件加载到虚拟机管理的内存区域(虚拟机不关心字节码文件的来源).这里涉及到类加载机制,请参见类加载机制相关帖.

2.运行时数据区域:此区域是虚拟机进行内存管理和垃圾回收的主要区域.请参见虚拟机运行时数据区域总结及垃圾回收帖.

3.字节码执行引擎:字节码执行引擎是虚拟机最核心的组成部分之一,它会将字节码进行解析并输出执行结果.

4.本地方法接口(Java Native Interface,简称JNI)

"A native method is a Java method whose implementation is provided by non-java code."

什么是本地方法?所谓本地方法,就是在java代码中被native修饰的方法,可以看看String类中的intern()方法,它就是一个本地方法.

为什么这里叫本地方法接口?我们可以看到在String类中的intern()方法,并没有具体的实现过程,真正的实现过程是由C/C++或其他底层汇编语言实现的.

这么做的好处是什么?

有些与平台相关的内容,通过底层语言可以很好的交互,例如内存操作.

5.本地方法类库:用来支持本地方法的实现.

猜你喜欢

转载自zhaodengfeng1989.iteye.com/blog/2410091