· [热点] 玩弹弹堂:来就送百元豪礼 PK夺PSP大奖
· iPhone 3GS能否再续辉煌 Pre将成iPhone最强对手
· 手机实名制风声再起 货比三家 运营商3G资费详解
· TD三期招标排名出炉 中兴华为大唐诺西份额约75%
· 联通分公司不得自定3G套餐 手机上网最低2元包月
· 诺基亚正式发布E72 6月档期满满 上市新机一览表

JVM(Java虚拟机)简介

发布时间:2005.04.18 19:10     来源:赛迪网    作者:赛迪网

Java的平台无关性是Java最重要的特性,而实现这一特性的基础就是Java虚拟机。因此,了解Java虚拟机的结构和工作方式对进一步理解Java概念十分有益。下面我们将从两个方面介绍Java虚拟机。

什么是Java虚拟机

从底层看,Java虚拟机就是以Java字节码为指令组的软CPU。附图显示了Java系统流程图(内含Java虚拟机)。从附图可以看出,在服务器端首先由开发人员编写Java程序并存为. Java文件;其次,Java编译器将.java文件编译成由字节码组成的.class文件;最后,将.class文件存放在Web服务器上。到此,Java程序已作为Internet或Intranet资源存放在Web服务器上随时可让客户使用。在客户端,用户使用WWW浏览器,通过Internet/Intranet将Web服务器上的含有Java程序的主页下载,再依赖本地Java虚拟机对.class文件解释执行。这样,内容丰富的Java应用资源便由服务器传送到客户端,并在用户浏览器上显示出来。

和普通的程序装入器一样,Java虚拟机执行程序时首先从网络或本地存储器中装入.class文件。由于网络的不安全因素较多,Hacker的恶意攻击,网络病毒的侵袭等等,因此,Java虚拟机在执行.class文件前,首先要对其进行验证。如果没有通过验证,则不执行并给出错误信息,相反,如果程序成功地经过验证阶段,Java虚拟机将运行翻译器读取字节码,把字节码转换成操作系统硬件相关的指令,并在真正的CPU上执行。

字节码是Java虚拟机的指令组(很象CPU上的微码)。字节码形式为<操作码><...操作数>。其中,操作码就是指令码,占一个字节的长度,一个字节码可以有多少操作数。目前,Java虚拟机规范中定度了220个字节码指令。由于字节码指令数目种类繁多,相对于机器码语义层次较高,因此,Java语言编译成字节码后文件尺寸较小便于网络传输。为了运行Java字节码,硬件厂商或操作系统厂商在自己的硬件和操作系统组合中实现Java虚拟机。Java虚拟机程序模块通常用C、C++或相应CPU支持的汇编语言编写。Java虚拟机用主机操作系统帮助完成内存、文件系统、显示器、鼠标、键盘、网络和其它设备驱动器以及线程处理等。另外,各厂商开发自己系统的Java虚拟机需要获得Java许可证。标准的Javasoft许可包括Java类库和Java虚拟机。每个拿到许可证的公司都会在自己的平台上成为Java的监护人,他们可以优化系统性能,但必须保证独立于平台的纯Java小程序能在他们的系统上运行。

从概念上讲,Java虚拟机的基本执行单元是.class文件。一个Java程序经过编译后将形成多个.class文件,而每个文件都对应一个程序中定义的类。因此,带有多个.class文件的Java程序在执行时与传统程序相比就有其特殊性。传统的程序在运行前,系统要装入含有全部程序码的单一执行文件,而Java虚拟机在执行程序时则不同,它遵循"即用即装入"的原则。具体讲,由于一个.class文件可以引用许多其它.class文件(在Java语言中,通过import,implement或extends语句实现),当运行的类需要其他类时,Java虚拟机即从网络或本地文件系统装入.class文件。将这个概念拓广,不同类可以由不同开发者在不同服务器上开发,Java虚拟机能够动态地装入和联接所需要的类文件。这对今后软件开发以及分布式计算都将有深远的意义。例如:这种结构可以使在服务器向客户机提供软件新版本时,只更新相应的.class文件,真正实现零管理客户机以及无版本软件等。

另外,Java虚拟机是使.class文件具有跨平台能力的核心结构,同一.class文件可以运行在实现Java虚拟机的不同计算机上。虚拟机只需要知道.class文件应该是什么结构和应当包含什么,而不必管.class文件对应的源程序代码是由何种语言编写的。由于各种语言的编译器与Java虚拟机本身无关,因此只要不同语言的编译器能从这些源文件中产生Java字节码,开发人员就可以使用各人所熟悉的Ada,C或C++语言编写的运行在任何Java虚拟机上的应用程序,而不必一定要学习Java语言。实现以上所说的内容,将大大简化现有软件向平台无关软件转化的工作。


[ 发表评论 ] 字体[  ] [ 打印 ] [ 进入博客 ] [ 进入论坛 ]  [ 推荐给朋友 ]
  相关文章
· 微软与Sun达成协议 对JVM支持将延至2007年 (04-15)
  客户需求反馈表
* 姓  名:
更多资料  了解方案  认识厂商
* 单位名称:
* 联系电话:
* 电子邮件:
资讯 通信 IT产品 IT技术 信息化
专题:扭亏为盈 联想09年Q2翻番
·专题:Tech·Ed 2009微..
·直播:2009互联网大会..
·迅雷搜狐"互搏" 谁动了..
专题:诺基亚危局已现 或重蹈摩托覆辙
·六股势力角逐4G标准 中..
·专题:联通iPhone并不贵..
·专题:排排坐开商店 三..
商务演示需求分析 多媒体会议室必备投影
·VMware在京隆重举行2009..
·专题:笔记本频道10月热..
·专题:学生机市场 惠普 ..
专题:Tech.Ed 2009微软技术大会
·专题:2009 SYBASE 亚太..
·专题:微软新一代桌面操..
·专题:2009年第3届CSDN..