一、Java体系结构
Java虚拟机内部体系结构
1、Java虚拟机简介:
Java虚拟机的主要任务是装载class文件并执行其中的字节码。Java虚拟机包含一个类装载器(class loader),它可以从程序和API中装载class文件。字节码由执行引擎来执行。2、类装载器
一个Java应用程序可以使用两种类装载器:启动类装载器和用户定义的类装载器。被不同的类装载器装载的类存放在不同的命名空间中,它们互相不能访问,除非应用程序显式地允许这么做。通过这种方法,就能够使用Java类装载器的体系结构来控制任何从不同源文件中装载的代码之间的相互影响,阻止恶意代码。当虚拟机运行Java程序时,它会查找使用存储在方法区中的类型信息。由于所有线程都共享方法区,因此它们对方法区数据的访问必须被设计为是线程安全的。
对每个被加载的类型,虚拟机都会在方法区中存储其类型信息,虚拟机还会存储该类型的常量池、字段信息、方法信息、除了常量外的所有静态变量、一个到类ClassLoader的引用、一个到Class类的引用。
3、Java class文件
class文件在平台无关性上的作用:为Java程序提供独立于底层主机平台的二进制形式的服务。4、Java API
Java API是运行库的集合,它提供了一套访问主机系统资源的标准方法。在一个平台能够支持Java程序之前,必须在这个平台上明确地实现API的功能。