首页 > 后端开发 > 正文

Java语言的跨平台特点是由什么保证的?

2024-05-22 23:19:36 | 我爱编程网

我爱编程网小编给大家带来了Java语言的跨平台特点是由什么保证的?相关文章,一起来看一下吧。

本文目录一览:

Java语言的跨平台特点是由什么保证的?

Java语言的跨平台特点是由什么保证的?

Java语言的跨平台特点是由Java虚拟机(JVM)保证的。JVM是一个能够解释和执行Java字节码的软件,它可以在不同的操作系统上运行,并且能够自适应不同的硬件环境。这样,Java语言编写的程序就不需要针对每个平台进行修改和编译,只需要一次编译成字节码,然后交给JVM来执行就可以了。这就实现了一次编写,到处运行(Write Once, Run Anywhere)的理念。

Java语言的跨平台特点是由什么保证的?

java语言如何实现跨平台特性?

Java语言通过使用Java虚拟机(JVM)实现跨平台特性。Java代码在编译时会被翻译成字节码(bytecode),而不是机器码。字节码可以在任何支持Java虚拟机的平台上运行,因为JVM会将字节码翻译成机器码。换句话说,Java应用程序不需要针对不同操作系统编写不同的代码,因为字节码可以在任何操作系统上运行。这也是为什么Java被称为“一次编写,到处运行”的语言。

Java语言的跨平台特点是由什么保证的?

Java真的跨平台吗?

——有感于《JAVA陷阱》 JAVA真的跨平台吗?我以前一直都认为是这样的,呵呵,对着满大街的各种Java书在说到Java的优点时几乎都会提到这一点,甚至是引以为傲的——这似乎成了Java应对别人指责其运行不够效率时的一种高姿态的无声的反驳,因为在IT大牛们百家争鸣,各拥一方时,Java能在中间得到他们大多数的支持,以及对Internet Web方面开发的天然的接合力,其跨平台成了多少人摆脱这些巨人们阴影的有效武器。sun成了英雄,一时风光无限!然而,事实并非如此——sun也是在追求成为巨人路上的一员。。。 我们来看看JAVA所谓的跨平台(Write once,Run everywhere)是如何实现的 首先编辑Java源文件,然后把.Java源文件编译成.class文件,class文件字节码文件,它是一种中间码,的确与平台无关,然而却也不能就此进行独立运行。它需要Java解释器进行解释后才执行。而这一切都要靠传说中的JVM——它就是Java实现所谓跨平台的终极武器。 JVM的目标是提供一个抽象的计算机模型,相当于你的机子上同时有了两套系统,现实的操作系统和JVM,你设计的程序先到JVM上运行,则说明你的程序符合JVM的描述规格(深深的打下Java的烙印)。同时JVM也就实现了为Java字节码定义了一种独立于具体平台的规格描述,JVM是Java平台独立性的基础。

我们把Java源程序想象成C/C++源程序,Java源程序编译后的字节码(.class文件)就相当于C/C++编译后的80x86上的机器码(Windows 中的.exe文件),而JVM就相当于80x86上的操作系统,而Java解释器就相当于80x86的CPU,在80x86上运行的程序是机器码,而在JVM上运行的就是class字节码。Java解释器相当于运行Java字节码的“CPU”,但是这个CPU不是真实物理意思上的CPU,而是通过软件来实现的"CPU"功能的。JVM本身就是某特定平台下的一个应用软件而矣,用它来运行打上Java烙印的字节码,这是Java跨平台的根本。 也就是说,并不是所有的平台都能实现都能"被"Java跨平台,只有在能够实现Java编译器功能的平台下才能运行Java文件。可以设想,如果生成了class文件,却没有JVM(或者说某个平台不支持JVM),Java编译好的的程序也是不能执行的。 关键的问题就来了,Java贡献的开源项目众多,所涉及到的范围也相当广泛,然而,谁也别想打JVM的主意。JVM的控制权牢牢的掌握在SUN,现在的Oracle的手中,JVM是不会被Oracle开放的。正如此,才有了开源精神领袖Richard的"自由但带着枷锁——java陷阱"。 如果你在Java和JVM上开发软件,你就被困在了由一个公司——Oracle控制的单一的一个平台上Oracle努力维持着对这个平台的控制权,拒绝删除在TCK里的使用条款,有效的阻止了Apache Harmony项目一直不能正式发布。对Google的诉讼证明了Oracle过度的痴迷于对这个平台的掌控。我们运用Java所做的一切都要看Oracle这个贪婪的巨头的脸色。 它让Java生,则Java生,它让Java死,则Java死。 如此这般,自由的Java在哪里,跨平台的初衷又被抛向了何方?我爱编程网

以上就是我爱编程网小编给大家带来的Java语言的跨平台特点是由什么保证的?,希望能对大家有所帮助。

免责声明:文章内容来自网络,如有侵权请及时联系删除。
与“Java语言的跨平台特点是由什么保证的?”相关推荐