Java虚拟机体系结构 - 平台无关性

来源:互联网 发布:javascript前端招聘 编辑:程序博客网 时间:2024/06/08 12:04

为什么要平台无关

        由于编译后的Java的可执行二进制文件(.class文件),能够在不加改变地运行于多个平台,因此,Java技术在网络环境下非常有用。另外,在嵌入式的世界,Java平台的无关性也有助于简化系统管理任务:如Jini技术(专用于给网络带来即插即用功能的技术),大大减少了在互联网环境中对嵌入式设备的管理任务。

        Java程序可以不加修改地运行与多个平台的能力,给予了网络同构的运行环境。新的分布式系统可以围绕着“网络移动”对象来构建,像对象序列化,RMI(远程方法调用)以及Jini就利用了这样的能力,把面向对象编程从虚拟机带到了网络。

Java体系结构对平台无关的支持

        1)Java平台 - Java平台扮演了一个运行时Java程序与其下的硬件和操作系统之间的缓冲角色,Java程序被编译为可运行于Java虚拟机的二进制程序,而虚拟机运行的那些API,则提供了程序访问底层计算机资源的能力。

        2)Java语言 - Java编程语言它的基本数据类型的值域和行为都是由Java语言自己定义的,譬如Java中int都是32位二进制补码表示的有符号整数,而float总是遵循IEEE754浮点标准的32位浮点数,同样在Java虚拟机内部以及class文件中都是一致的,通过确保基本数据类型在所有平台上的一致性,Java语言本身为Java程序的平台无关性提供了强有力的支持。

         3)Java class文件 - class文件定义了一个特定与Java虚拟机的二进制格式,可以在任何平台上创建,也可以在任何平台的Java虚拟机上装入并运行。

        4)可伸缩性 - Java支持平台无关性,一个方面就是它的可伸缩性。Java平台可以在各种各样不同类型的(从嵌入式设备到大型主机)计算机上实现。

平台无关的七个步骤

    1)选择程序时要运行的主机和设备的集合(目标宿主机)

    2)在目标宿主机中选择自认为足够号的Java平台版本,在该版本Java平台上编写,运行程序

    3)对于每个目标宿主机,选择一些程序将要运行的Java平台实现(目标运行时环境)

    4)编写程序,使它只通过Java  API的标准运行库来访问计算机(不要调用本地方法或开发商专有的那些调用本地方法的库)

    5)编写程序,使它不依赖垃圾收集器及时终结的正确性,也不以来线程的优先级

    6)努力设计一个用户界面,使它在你所有的目标宿主机上都能正常工作

    7)在所有的目标运行时环境和所有的目标宿主机上测试程序。

0 0