Java运行原理与Java虚拟机 - 张华伟(2)

2019-03-02 23:13

身也可能成为用户的隐患。 Sun

等主要提供 Java

虚拟机下载的 公司都对自己的 Java

虚拟机经过了彻底检查,下载和操作通常 是安全的。可以这么说,下载安全的 Java

虚拟机是对付病毒入

侵和保障程序安全的第一道防线。 有了安全的虚拟机之后,对 Java

程序进行解释执行的方式 也是保证 Java

程序安全性的一个重要原因。因为每个 Java 程序

的运行都在 Java

虚拟机的控制之下, Java

虚拟机可以包含这个

程序并且能阻止它在系统之外产生副作用。例如, Java 程序从

网络上下载运行时必然会带来许多不安全因素。一些恶意的 Hacker

可以直接写出字节代码段攻击用户节点,如删除文件、搞 乱硬盘或未经用户许可在网上发送本地信息等。有了 Java 虚拟

机,这些防卫本地机被攻击的任务就可以交给它来完成了。 这是因为 Java

虚拟机本身提供了几种安全机制,这些机制 可以保证在执行 .class

文件前,首先要对其进行验证。如果没有

通过验证,则不执行并给出错误信息。相反,如果程序成功地经 过验证阶段, Java

虚拟机将运行解释器读取字节码,把字节码转 换成操作系统硬件相关的指令,并在真正的 CPU

上执行。其中, 安全管理器和 Java

类文件认证器两种主要的机制。

安全管理器是安全的实施者,它是一个可扩展类,提供加在 应用程序和特殊系统上的安全措施,实现 Java

虚拟机的安全策 略,建立 Java

程序的命名空间,限制对网络、本地文件系统和程

序其它部分的访问(程序的命名空间是由操作系统或这里的 Ja? va

虚拟机所建立的程序边界,该程序无法访问命名空间以外的 资源)。 Java

认证器在 .class

文件运行前完成对该文件的安全检查, 确保 Java

字节码符合 Java

虚拟机规范。 Java

平台通过使用认证

器查看类文件的句法和词法的正确性、检查版本及 API 符合性

等,保证病毒和其他恶意程序不会侵犯本地系统。认证器包括 四个阶段的操作:类文件认证、类型系统认证、字节码认证和运 行时类型与访问检查。此外,认证器在检查期间还能识别算法 操作的上溢和下溢等其他可能发生在运行期间的程序错误。 4 Java

虚拟机的性能

由于在当前主机操作系统中加上了 Java

虚拟机层,因此被

解释的程序的运行速度通常确实会比同一个程序被编译为可执 行代码的运行速度慢一些。除了解释过程会影响

Java

字节码执

行速度之外,还有其他一些原因也会影响 Java

虚拟机的性能。

比如:读入的字节码是在运行时进行验证,验证过程需要花费时 间,而传统程序在程序编译时即完成验证工作; Java

完全依赖堆

栈,运算操作都在堆栈上执行,而传统编译型语言在编译时就已 经进行多种优化工作,很多计算操作可直接在寄存器中完成。 还有程序执行期间,系统要进行无用内存单元回收工作,在回收 过程中,程序还将停止执行,这些无疑也会影响其性能。 不过,针对 Java

虚拟机执行程序速度慢的问题, Sun 公司和

业界的其他主要公司(如 Microsoft,Borland 等)也提出了改进方

法。比如,通过多线程编程来提高 Java

程序的执行效率。当然, 最直接的方法还是 Java

程序动态的编译为本机代码。 SUN 公司 在 Java2

发行版中提供了一个字节码编译器—— JIT ( Just In Time ), JIT

编译器在程序开始执行前先将所有字节码翻译成本地 机器码,然后再将翻译后的机器码放在 CPU

上运行。实际上, JIT 仍是

Java

虚拟机的一部分,它不能将整个 Java

程序一次性全部编

译为可执行的代码,而是只编译它运行时需要的代码。这是因为 Java

要执行各种检查,而这些检查只有在运行时才执行。尽管如 此,这种即时编译执行的方法仍然使其性能得到较大提高。即使 对字节码进行动态编译后, Java

程序的可移植性和安全性仍能得

到保证,因为运行时系统(该系统执行编译)仍然能够控制 Java 程

序的运行环境。无论 Java

程序被按照传统方式解释为字节码,

还是被动态编译为可执行代码,其功能是相同的。 张华伟: Java

运行原理与 Java 虚拟机 45 Java

虚拟机的发展 通过虚拟机来执行 Java

是最常见的架构方式。这是由于: 一方面是虚拟机的 Java

平台最容易被实现,另一方面是只要有

了虚拟机就可以在不更换现有的系统平台(操作系统和 CPU )下

稳定地执行 Java

程序。目前,多数主流的系统平台(包括 Win? dows 、 Linux 、 Mac 、

Solaris... )都已内置 Java

的虚拟机了。

实际上,只要能够执行 Java

字节码文件的平台,都可以称之 为 Java

平台。除了虚拟机这种常见的架构方式之外,实现 Java

平台的方式还有两种,分别是: Java

操作系统( Java Operating System ); Java 芯片( Java Chip )。

其实,如果把 Java

虚拟机整合进已有的操作系统中(例如: MacOSX ),或是打造一个全新的操作系统来专门执行 Java 字节

码(例如: JavaOS ),这类能直接执行 Java

字节码的操作系统也可 视为 Java

平台。这样的执行架构大致上可以分成三层,分别是: 第一层(最上层)的 Java

字节码;第二层的 Java

操作系统; 第三

层(最底层)的芯片。 如果把 Java


Java运行原理与Java虚拟机 - 张华伟(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:无机材料科学基础习题与解答完整版

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: