什么是JAVA的可移植性

2025-05-09 05:16:16

JA外狒芙梨VA的可移植性:

1.JAVA作为一种编程语言:源代码可移植性

  作为一种编程语言,JAVA提供了一种最简单同时也是人们最卉剡卧迟熟悉的可移植性–源代码移植。这意味着任意一个JAVA程序,不论它运行在何种CPU、操作系统或JAVA编译器上,都将产生同样的结果。这并不是一个新的概念。人们使用C、C++也可以产生同样的效果。但是使用C或C++编程人们可以有太多的选择,在许多细节上它都没有严格定义,如:未初始化变量的值、对已释放的内存的存取、浮点运算的尾数值等等。所以除非你一开始就严格按照系统无关的概念来进行设计,否则这种可移植性只能是一种理论上的设想而不能形成实践。总之,尽管C和C++有严密的语法定义,它们的语意(symantics)定义还不是标准的。这种语意上的不统一使得同一段程序在不同的系统环境下会产生不同的结果。有时即使系统情况完全相同而仅仅由于编译器的设置不同也会产生令人意想不到的结果。而JAVA就不同了。它定义了严密的语意结构,而使编译器不承担这方面的工作。另外,JAVA对程序的行为的定义也比C和C++严格,如:它提供了内存自动回收功能(GarbageCollection),使程序不能访问越界内存;它对未初始化的变量提供确定值等等。它的这些特性能够减小在不同平台上运行的JAVA程序之间的差异,也使得JAVA具有即使没有JAVA虚拟机的存在的情况下比C和C++更好的平台无关性。然而,这些特点也有它不利的一面。JAVA设想运行于具有32位字节长度且每字节为8位的计算机上,这就使得那些8位字长的计算机和一些巨型机不能有效的运行JAVA程序。在这样的平台上就只能运行那些可移植的C和C++程序了。

什么是JAVA的可移植性

  JAVA采用了提供一套与平台无关的库函数(包括AWT、UTIL、LANG等等)的方法来解决这个问题。就象JVM提供了一个虚拟的CPU一样,JAVA库函数提供了一个虚拟的GUI环境。JAVA程序仅对JAVA库函数提出调用,而库函数对操作系统功能的调用由各不同的虚拟机来完成。JAVA也在它的OS/GUI库中使用了一种“罕见名称符”(least-commom-denominator)来提供对某种特定操作系统的功能调用,即此功能只在特定环境下生效而在其它操作系统下则被忽略。这样做的好处在于可以针对某操作系统生成拥有人们熟悉的界面的应用程序而同时此程序又能在其它系统下运行。缺点则是系统中的某些功能调用有很强的依赖性因而在JAVA的虚拟OS/API中难以实现。遇到这种情况,程序员就只能写不可移植的程序了。

  总之,JAVA在可移植性方面的特点使它在Internet上具有广泛的应用前景。同时它本身具有的防病毒的能力也使它在需要高可靠性的应用中占有一席之地。

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢