当前位置: 首页 > 学习 > 电脑学习 > 程序设计 > JAVA > 基础教程 > 正文

Java的魔力:字节码

http://www.zk168.com.cn  招考学习网 2006-4-11 0:57:07
-----------------------------------------------------------[交流]-[打印]-[发送]-[收藏]--
     Java 解决上述两个问题——安全性和可移植性的关键在于Java 编译器的输出并不是可执行的代码,而是字节码(bytecode )。字节码是一套设计用来在Java 运行时系统下执行的高度优化的指令集,该Java 运行时系统称为Java 虚拟机(JavaVirtual Machine,JVM)。在其标准形式下,JVM是一个字节码解释器。这可能有点让人吃惊,因为像C++之类语言的编译结果是可执行的代码。事实上,出于对性能的考虑,许多现代语言都被设计为编译型,而不是解释型。然而,正是通过JVM运行Java 程序才有助于解决在Internet 上下载程序的主要问题。这就是Java 输出字节码的原因。
    将一个Java 程序翻译成字节码,有助于它更容易地在一个大范围的环境下运行程序。原因非常直接:只要在各种平台上都实现Java 虚拟机就可以了。在一个给定的系统中,只要系统运行包存在,任何Java 程序就可以在该系统上运行。记住:尽管不同平台的Java 虚拟机的细节有所不同,但它们都解释同样的Java 字节码。如果一个Java 程序被编译为本机代码,那么对于连接到Internet 上的每一种CPU 类型,都要有该程序的对应版本。这当然不是一个可行的解决方案。因此,对字节码进行解释是编写真正可移植性程序的最容易的方法。
    对Java 程序进行解释也有助于它的安全性。因为每个Java 程序的运行都在Java 虚拟机的控制之下,Java 虚拟机可以包含这个程序并且能阻止它在系统之外产生副作用。正如你将看到的,Java 语言特有的某些限制增强了它的安全性。
    被解释的程序的运行速度通常确实会比同一个程序被编译为可执行代码的运行速度慢一些。但是对Java 来说,这两者之间的差别不太大。使用字节码能够使Java 运行时系统的程序执行速度比你想象的快得多。
    尽管Java 被设计为解释执行的程序,但是在技术上Java 并不妨碍动态将字节码编译为本机代码。SUN 公司在Java 2 发行版中提供了一个字节码编译器——JIT(Just In Time,即时)。JIT 是Java 虚拟机的一部分,它根据需要、一部分一部分地将字节码实时编译为可执行代码。它不能将整个Java 序一次性全部编译为可执行的代码,因为Java 要执行各种检查,而这些检查只有在运行时才执行。记住这一点是很重要的,因为JIT 只编译它运行时需要的代码。尽管如此,这种即时编译执行的方法仍然使性能得到较大提高。即使对字节码进行动态编译后,Java 程序的可移植性和安全性仍能得到保证,因为运行时系统(该系统执行编译)仍然能够控制Java 程序的运行环境。不管Java 程序被按照传统方式解释为字节码,还是被动态编译为可执行代码,其功能是相同的。
-----------------------------------------------------------[交流]-[打印]-[发送]-[收藏]--
最新入库:
 
·实质、过程及意义——阿多尔诺“否定的辩证法”探微
·从Ontology的译名之争看哲学术语的翻译原则
·论马克思主义哲学经典的解释——解释学方法及其在马克
·中国哲学当前的核心与周边问题
·和合学与21世纪文化价值和科技
·中国文化的和合精神与21世纪
·宗教之间理当相互宽容
·上半个世纪的自由主义
·殷周至春秋时期神人关系之演进
·大学之道:构建以“三纲八目”为核心的道德修养体系
相关内容:
 
·环保企业人力资源开发与管理的实证研究————巨龙公
·重油制气污水处理系统(A/O)技术改造
·英美CPA管理模式及其启示
·改造NERA微波公务信道为国产监控信道
·EAStudio让电子商务网站如虎添翼
·基于PB6和ORACLE8开发“劳动信息管理系统”
·巧解Pretty  Park 病毒一例
·CDMA在中国的应用以及向CDMA2000的过度中的问题研究
·SMA施工控制与现场监理
·浅谈改性沥青及SMA路面平整度的控制
网友点评:
 
会员名称:
密码:匿名 ·注册·忘记密码?
评论内容:
(最多300个字符)
  查看评论
友情提醒:
 1.库中的资料大都来自互联网、网友上传、各类书籍,在录入的过程中难免会出现错误,恳请网
 友来信指正!
 2.如果网友在本库中未能找到所需要的材料,请登陆到我们的论坛《招考学习网》版块!
 3.考友想加入招考学习网的编辑部,请发信到XueXiWang#Gmail.com(#改为@)附带个人简历
 4.如需转载请注明出处及作者,谢谢合作!
 5.如果您有更好的建议或意见请EMAIL:XueXiWang#Gmail.com (#改为@)
 6.凡标题中有注有“[NO]”字样均不含答案且答案整理中.
 7.如本库中转载文章涉及版权等问题,请相关网站或作者在两周内发邮件通知(EMAIL:  XueXiWang#Gmail.com (#改为@))我们,我们接到通知后立即删除该文章及链接!
你问我答 更多>>