Java平台无关性的实现

   学习Java已经接近三年了,自从大二开始我就开始了Java的学习,但一直以来学的都是比较基础的东西,从开始接触Java开始我就听到了许多关于Java在应用方面的优点,诸如平台无关性等等,但是对于什么是平台无关性,Java又是如何实现的平台无关性,则是一直半解,知道前几天在网上看到了《深入Java虚拟机》这本书,才对Java实现平台无关性的机制有了了解,我觉得它是一本非常好的一本书,对于更深的了解Java有很好的帮助,下面是我对它关于Java平台无关性的一些摘要,供大家和自己在以后的学习中参考。
    Java API通过支持平台无关性和安全性,使得Java适应于网络应用。Java API是运行库的集合,它提供一套访问主机系统资源的标准方法。 Java API的class文件天生就与主机平台密切相关。在一个平台能够支持Java程序以前,必须在这个特定平台上明确地实现API的功能。为访问主机上的本地资源,Java API 调用了本地方法,由于Java API class文件调用了本地方法,Java程序就不需要再调用它们了。通过这种方法,Java API class文件为底层主机提供了具有平台无关性的、标准接口的Java程序。对Java程序而言,无论平台内部如何, Java API都会有同样的表现和可预测的行为。正是由于在每个特定的主机平台上都明确地实现了Java虚拟机和Java API, 因此,Java程序自身就能够成为有平台无关性的程序。
   Java API的内部设计也和平台无关性相关。Java编程语言主要通过以下方式支持Java的平台无关性:
   它的基本数据类型的值域和行为都是由语言自己定义的。这点对于学过Java的人来说很容易理解,Java中的基本数据类型在所有平台上是一致的,Java语言本身为Java程序的平台无关性提供了强有力的支持。
   Java class文件:class文件定义了一个特定于Java虚拟机的二进制格式。Java class文件可以在任何平台上创建,也可以被任何平台的Java虚拟机装入并运行。它的格式,包括多字节值的高位优先存放约定,都有严格的定义,并且是与Java虚拟机所在平台无关的。
    Java支持平台无关性,一个方面就是它的 可伸缩性。Java平台可以在各种各样不同类型(从嵌入式设备到大型主机)计算机实现。Sun改变过的API定义方式得到了三个基础API集合,它们表现Java平台不同的伸缩性:企业版、标准版和微型版
    当编写一个平台独立的Java程序时,必须遵守的一条最重要的原则就是:不要直接或间接调用不属于Java API的本地方法,因为调用Java API以外的本地方法将使程序平台相关。
    以上只是我从《深入Java虚拟机》这本书摘录的,如果你想做更加详细的了解,请参考这本书

你可能感兴趣的:(java,虚拟机,网络应用,企业应用,嵌入式)