Bolo  当前访客:2 管理登录

GeekTom | Blog

Be profound be funny or be quiet .

JAVA - java的平台无关性 [转载]

2019-12-12 21:55:53 geektomya
0  评论    122  浏览

  Java开发者都知道,Java是平台无关性的,这也是Java语言可以迅速崛起并风光无限的一个重要原因。那么,到底什么是平台无关性?Java又是如何实现平台无关性的呢?

什么是平台无关性

  平台无关性就是一种语言在计算机上的运行不受平台的约束,一次编译,到处执行(Write Once ,Run Anywhere)。

  也就是说,用Java创建的可执行二进制程序,能够不加改变的运行于多个平台。

平台无关性的好处

  作为一门平台无关性语言,无论是对自身的发展,还是对开发者的友好度上都是突出的。对于Java开发者来说:Java减少了开发和部署到多个平台的成本和时间。真正的做到了一次编译,处处运行。

平台无关性的实现

  对于Java的平台无关性的支持,就像对安全性和网络移动性的支持一样,是分布在整个Java体系结构中的。其中扮演者重要的角色的有Java语言规范、Class文件、Java虚拟机(JVM)等。

Java虚拟机

  所谓平台无关性,就是说要能够做到可以在多个平台上都能无缝对接。但是,对于不同的平台,硬件和操作系统肯定都是不一样的。

  对于不同的硬件和操作系统,最主要的区别就是指令不同。比如同样执行a+b,A操作系统对应的二进制指令可能是10001000,而B操作系统对应的指令可能是11101110。那么,想要做到跨平台,最重要的就是可以根据对应的硬件和操作系统生成对应的二进制指令。

  而这一工作,主要由我们的Java虚拟机完成。虽然Java语言是平台无关的,但是JVM确实平台有关的,不同的操作系统上面要安装对应的JVM。

  有了Java虚拟机,想要执行a+b操作,A操作系统上面的虚拟机就会把指令翻译成10001000,B操作系统上面的虚拟机就会把指令翻译成11101110。

所以,Java之所以可以做到跨平台,是因为Java虚拟机充当了桥梁。他扮演了运行时Java程序与其下的硬件和操作系统之间的缓冲角色。

字节码

  各种不同的平台的虚拟机都使用统一的程序存储格式——字节码(ByteCode)是构成平台无关性的另一个基石。Java虚拟机只与由字节码组成的Class文件进行交互。

  我们说Java语言可以Write Once ,Run Anywhere。这里的Write其实指的就是生成Class文件的过程。

  因为Java Class文件可以在任何平台创建,也可以被任何平台的Java虚拟机装载并执行,所以才有了Java的平台无关性。

Java语言规范

  已经有了统一的Class文件,以及可以在不同平台上将Class文件翻译成对应的二进制文件的Java虚拟机,Java就可以彻底实现跨平台了吗?

  其实并不是的,Java语言在跨平台方面也是做了一些努力的,这些努力被定义在Java语言规范中。

  比如,Java中基本数据类型的值域和行为都是由其自己定义的。而C/C++中,基本数据类型是由它的占位宽度决定的,占位宽度则是由所在平台决定的。所以,在不同的平台中,对于同一个C++程序的编译结果会出现不同的行为。

  举一个简单的例子,对于int类型,在Java中,int占4个字节,这是固定的。

  但是在C++中却不是固定的了。在16位计算机上,int类型的长度可能为两字节;在32位计算机上,可能为4字节;当64位计算机流行起来后,int类型的长度可能会达到8字节。

  通过保证基本数据类型在所有平台的一致性,Java语言为平台无关性提供强了有力的支持。

小结

对于Java的平台无关性的支持是分布在整个Java体系结构中的。其中扮演着重要角色的有Java语言规范、Class文件、Java虚拟机等。

  • Java语言规范

    • 通过规定Java语言中基本数据类型的取值范围和行为
  • Class文件

    • 所有Java文件要编译成统一的Class文件
  • Java虚拟机

    • 通过Java虚拟机将Class文件转成对应平台的二进制文件等

  Java的平台无关性是建立在Java虚拟机的平台有关性基础之上的,是因为Java虚拟机屏蔽了底层操作系统和硬件的差异。

参考资料:java如何实现平台无关性的


标题:JAVA - java的平台无关性 [转载]
作者:geektomya
地址:HTTPS://blog.zhqy.xyz/articles/2019/10/22/1571747472258.html
彧言:  正在加载今日诗词....

发表评论




目录

TOP
取消