关闭

为什么说Java语言是平台无关的

标签: java编程语言
1553人阅读 评论(0) 收藏 举报
分类:

一、平台与机器指令

       无论哪种编程语言编写的应用程序都需要经过操作系统和处理器来完成程序的运行,因此这里的平台是又OS和CPU所构成的,所谓的平台无关就是指软件的运行不会因操作系统、处理器的变化而无法运行或出现运行错误。
       每个平台都有自己独特的机器指令,所谓平台的机器指令就是可以被该平台直接识别、执行的一种由0和1组成的序列代码。相同的CPU和不同的OS所形成的平台的机器指令可能是不同的

二、何为与平台相关?

      C/C++程序是依赖平台的:C/C++源程序所在的特定平台对其源文件进行编译、链接,生成机器指令,即根据当前平台的机器指令生成可执行文件,所以其可以在任何与当前平台相同的平台上运行这个可执行文件。但是,不能保证C/C++源程序所产生的可执行文件在所有平台上都能正确的运行,其原因是不同平台可能具有不同的机器指令。所以,一旦更换了平台,就可能需要修改源程序,并针对新的平台重新编译源程序,也就是与平台相关
C/C++程序无法跨平台的根本原因是C/C++源程序的编译器针对平台进行编译,而不同的平台有不同的机器指令,所以无法跨平台。

三、Java为何可以跨平台

       C/C++之所以不能跨平台,就是因为C/C++源程序是对平台编译的,所以与平台密切相关。如果有这样的一个环境:它既可以向下兼容(对平台兼容),又可以向上兼容(程序可以运行),那么不就可以跨平台了吗。基于这样的原理,Java在计算机的操作系统上又提供了一个Java运行环境——JRE(安装JDK)。
      JRE由Java虚拟机,类库和一些核心文件组成,也就是说,只要平台提供了Java运行环境,Java编写的软件就可以在其上运行。
       和C/C++不同的是,Java语言提供的编译器不针对特定的操作系统和CPU芯片进行编程,而是针对Java虚拟机把Java源程序编译成称为字节码的“中间代码”,然后Java虚拟机负责将字节码翻译成虚拟机所在平台的机器码,并让当前平台运行该机器码。
Java语言的运行原理:
在一个计算机上编译得到的字节码文件(就是.class文件),可以复制到任何一个安装了Java运行环境的计算机上直接运行。然后字节码文件由虚拟机负责解释执行,即Java虚拟机将字节码翻译成本地计算机的机器码,然后将机器码交给本地的操作系统运行。

由于在一个计算机上编译得到的字节码文件可以复制到任何一个安装了Java运行环境的计算机上直接使用,所以字节码其实是一种“中间代码”,这也就是为什么“Java语言能够一次编译,处处运行,也就是Java跨平台的原因。”所以称Java是一种“半编译,半解释的语言”,即源程序——>编译——>字节码——>字节码解释程序——>对应平台的机器语言。”

3
0
查看评论

什么是Java虚拟机?为什么Java被称作是“平台无关的编程语言”?

Java虚拟机是一个可以执行Java字节码的虚拟机进程。Java源文件被编译成能被Java虚拟机执行的字节码文件。 Java是平台无关的语言是指用Java写的应用程序不用修改就可在不同的软硬件平台上运行。平台无关有两种:源代码级和目标代码级。C和C++具有一定程度的源代码级平台无关,表明用C或C+...
  • YgoodmanM
  • YgoodmanM
  • 2016-03-03 14:11
  • 5359

浅谈java的平台无关性

事先说明哈,以下仅代表当前个人理解: 说java是平台无关的语言,我觉得可能会让人误解了一些东西,自己之前就一直搞不懂java所谓的平台无关性是怎样的或者怎么实现的。 这里,说一下自己这阵子java学习之后对于这个概念的理解:首先,我认为所谓的语言平台无关性,其实对于所有高级编程语言(如C/C++、...
  • Lv_Victor
  • Lv_Victor
  • 2016-08-20 19:51
  • 425

什么是Java虚拟机?为什么Java被称为平台无关的编程语言

一、什么是java虚拟机? java虚拟机是执行字节码文件(.class)的虚拟机进程。 java源程序(.java)被编译器编译成字节码文件(.class)。然后字节码文件,将由java虚拟机,解释成机器码(不同平台的机器码不同)。利用机器码操作硬件和操作系统 二、为什么java被称为平台无关...
  • qq_18433441
  • qq_18433441
  • 2017-09-19 08:35
  • 1042

Java的平台无关性

什么是JVM? 1,http://developer.51cto.com/art/201009/227029.htm JVM所指的就是Java虚拟机。Java正是凭借Java虚拟机来实现其平台无关性的。通过在机器与编译程序之间加入一层抽象(即JVM)来实现脱离平台这一性质。 其中,注意: ...
  • qinpengtaiyuan
  • qinpengtaiyuan
  • 2014-11-14 15:23
  • 1752

浅谈Java平台无关性

为什么Java要支持平台无关性众所周知,Java是平台无关的语言,那么Java为什么要支持平台无关性,总结一下,有如下几点 支持多变的网络环境。如今是一个互联网的时代,网络将各种各样的计算机和设备连接起来,比如网络连接了windows的PC机,UNIX工作站等等。为了保证程序能够不加任何修改运行于网...
  • lincolnmi
  • lincolnmi
  • 2016-01-17 14:55
  • 3715

java对平台无关性的支持

 java体系结构通过几种途径支持java程序的平台无关性,扮演一个运行时java程序与其下的硬件和操作系统之间的缓冲角色。java程序被编译为可以运行于java虚拟机中的2进制程序。接着运行虚拟机程序,那些api则给与程序访问底层计算机资源的能力。无论java程序被部署到何处,他只要和j...
  • parrylau
  • parrylau
  • 2008-01-03 17:43
  • 1840

通俗易懂解释什么是平台无关性,什么是JVM

java源文件的格式是text/html类型的,可以直接用记事本打开。编码可以是utf-8, 也可以是其它类型的。后缀为.java源文件编译后的字节码是以CAFE BABY开头的二进制文件。 需要JVM才能读懂。后缀为.class一般来说,一个类对应一个字节码文件,内部类编译后也会生成 一个单...
  • qq_31331965
  • qq_31331965
  • 2016-03-09 19:20
  • 345

Java语言的平台独立性

Java语言的平台独立性
  • jsqfengbao
  • jsqfengbao
  • 2015-03-31 21:19
  • 737

为什么说Java语言是平台无关的

一、平台与机器指令        无论哪种编程语言编写的应用程序都需要经过操作系统和处理器来完成程序的运行,因此这里的平台是又OS和CPU所构成的,所谓的平台无关就是指软件的运行不会因操作系统、处理器的变化而无法运行或出现运行错误。 ...
  • newmemory
  • newmemory
  • 2017-02-09 19:34
  • 1553

有关Java虚拟机与Java被称为‘平台无关的编程语言’的简单特点

有关Java虚拟机与Java被称为‘平台无关的编程语言’的简单特点Java虚拟机 定义:Java虚拟机(Java Virtual Machine 简称JVM)是运行所有Java程序的抽象计算机,是Java语言的运行环境,它是Java 最具吸引力的特性之一。
  • Funffff
  • Funffff
  • 2017-07-29 14:21
  • 204
    个人资料
    • 访问:49465次
    • 积分:1224
    • 等级:
    • 排名:千里之外
    • 原创:67篇
    • 转载:3篇
    • 译文:2篇
    • 评论:8条
    文章分类
    最新评论