java运行环境是什么
Java运行的基本明腊激环境由两个部分组成:一个是Java Virtual Machine即Java虚拟机,另一部分是Java Application Programming Interface (Java API) 即Java应用程序设计接口。
Java API 是一个大的已经做好的软件集合,这个集合里有许多开发时所需要的控件,用来辅助开发。Java API和JVM整合在一起处于机器硬件之上。也就是说,Java平台把一个Java应用程序从硬件系统分离开从而很好的保证了程序的独立性。
为了更好的适应开发的需要,Java的设计者们为我们提供了三种Java平台:Java 2 Micro Edition (J2ME ), Java 2 Standard Edition (J2SE)和 Java 2 Enterprise Edition (J2EE). 每一个版本都提供了丰富的开发工具箱以适应不同的开发需要。
Java平台的核心JVM的具体结构:
为了让编译产生的字节码可以更好的解释与执行,一共把JVM分成了主要的6块:JVM解释器,指令系统,寄存器,栈,存储区,碎片回收区。
JVM解释器就是这个虚拟机的处理字段码的CPU。
JVM指令系统同硬件计算机很相似。一条指令分局肢成操作码和操作数两部分组成。操作码为8位二进制数,操作数可以根据需要而定。操作码是为了说明一条指令的功能,所以JVM可以有多达256种不同的操作指令。激袜
JVM有自己的虚拟寄存器,这样就可以快速的和JVM的解释器进行数据交换。为了功能的需要,JVM设置了常用的4个32位寄存器:pc(程序计数器),optop(操作数栈顶指针),frame(当前执行环境指针),vars(指向当前执行环境中第一个局部变量的指针)。
JVM栈是指令执行的时候数据和信息存储的场所和控制中心,它提供给JVM解释器运算所需要的信息。
JVM存储区就是为了把编译过后的字节码等信息存储起来。
JVM碎片回收是指将那些使用过后的Java类的具体的实例从内存进行回收,这就使得开发人员免去了自己编程控制内存的麻烦和危险。随着JVM的不断升级其碎片回收的技术和算法也更加合理。比较经典的算法有引用计数、复制、标记-清除和标记-整理。
在JVM1.4.1版以后产生了一种叫分代收集技术,简单的来说就是利用对象在程序中生存的时间划分成代,以这个为标准进行碎片回收。关于碎片回收将在以后的文章中专门讲解。