java语言是平台有的还是无的,java与平台无关吗
为什么说java语言与平台无关?
一、平台与机器指令
无论是哪种编程语言编写的,应用程序都需要通过操作系统和处理器来运行,所以这里的平台是由OS和CPU组成的。所谓平台无关性,就是软件的运行不会因为操作系统和处理器的变化而无法运行或者运行不正确。
每个平台都有自己独特的机器指令。所谓平台的机器指令,就是平台可以直接识别并执行的由0和1组成的序列码。同一个CPU和不同的OS形成的平台的机器指令可能是不同的。
推荐教程:《java学习》
二、何为与平台相关?
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语言的操作原理:
在计算机上编译的字节码文件(即。类文件)可以复制到任何安装了Java运行时环境的计算机上直接运行。然后字节码文件被虚拟机解释执行,也就是Java虚拟机把字节码翻译成本地计算机的机器码,然后把机器码交给本地操作系统运行。
因为在计算机上编译的字节码文件可以复制到任何有Java运行时环境的计算机上直接使用,所以字节码实际上是一种“中间代码”,这就是为什么“Java语言可以一次编译,到处运行,也就是Java跨平台的原因。”所以Java是“半编译半解释语言”,即源程序——编译3354字节码3354解释器3354对应的平台的机器语言。“这就是为什么java语言与平台无关。请多关注我们的其他相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。