一、引言
1991年,Sun MicroSystem公司由James Gosling、Bill Joe等人组成的Green小组开发了
一个名为Oak的软件(Java的前身),目的是用于电视等家用电器的嵌入式应用。但后来,正如
我们现在所知道的那样,Java的发展却出乎它的开发者的预料,它并没有在嵌入式应用中大展
身手,但却风靡WWW世界。
如今,Java应用程序在Internet上随处可见。这些程序的执行有一个共同的特点,它们都
基于一个用软件实现的Java虚拟机来解释或编译执行,这难免会影响软件执行的速度,内存占
用多。而Sun即将推出的Java芯片用硬件实现Java虚拟机规范,可以直接执行Java字节码,如
图1所示。
@@28111000.GIF;图1 Java程序的三种执行方式@@
Sun为Java芯片制定了picoJavaⅠ核心规范,该规范为优化运行Java代码作了许多创新设
计。picoJava体系结构是MicroJava芯片的基础。该芯片将广泛应用于嵌入式应用系统,如机
顶盒、工业数据采集设备、蜂窝电话、网络计算机等。此外Sun还有一种更高档的芯片Ultr
aJava,将用于台式机。UltraJava将可能有如JPEG解压缩之类的图形处理优化能力。我们常
看到的"picoJava"实际上只是一个概念,而MicroJava和UltraJava是由Sun公司设计、由其它
硬件生产商生产的实际产品。
实际上,嵌入式应用中的Java并不是一个新东西,如果我们了解Java语言的历史,那么我
们就会知道嵌入式应用正是Java语言的"老本行",是发明Java语言的初衷。
Sun声称,在这些芯片上运行Java程序比在Java解释器上快10倍。模拟的实验表明,同等
时钟频率下的Java芯片比采用解释器的Pentium机快10倍,比采用JIT(Just-intime)编译器的
Pentium快5倍。应该说,Java芯片运行Java程序肯定会比一般的芯片快,并且由于不需要解释
或编译就可直接执行Java字节码,因此对系统资源的需求如内存等会更少。
Sun计划在年内推出MicroJava芯片和UltraJava芯片。其中MicroJava价格为25~50美元
,UltraJava价格接近100美元。价格低廉可以说是Java芯片的优势。
picoJavaⅠ核心规范是目前Sun唯一已公布的Java芯片内部结构规范。
二、RISC-Like结构
与以堆栈为基础的Java虚拟机规范类似,picoJavaⅠ也是以堆栈为中心的处理器,它不是
纯粹的RISC结构,但大量采用RISC技术(Sun在RISC技术上有十余年的经验),可以说是RISC-L
ike结构。picoJavaⅠ结构简单,如图2所示。
从图2中可以看出,picoJavaⅠ的很多部分都是可选配的,如浮点数数据通道,而指令高速
缓存和数据高速缓存则可以在0~16K中选择。这样,
类的初始化和对象初始化是 JVM 管理的类型生命周期中非常重要的两个环节,Google 了一遍网络,有关类装载机制的文章倒是不少,然而类初始化和对象初始化的文章并不多,特别是从字节码和 JVM 层次来分析的文章更是鲜有所见。
本文主要对类和对象初始化全过程进行分析,通过一个实际问题引入,将源代码转换成 JVM 字节码后, ......