本文目录一览:
关于java的跨平台特性
java的确是一个跨平台语言,而且它跨平台不只是限于Windows系统,可能你不太了解其他的系统,java不仅可以运行在Windows上,还可以运行在Linux,Mac Os等类UNIX系统,或者是一些嵌入式系统,他的平台无关性表现在用它写的程序不需要任何本地化代码(native code),本地化代码,在该平台的jre或者jdk已经封装完毕了。他实现这样的跨平台特性依靠于他特殊的机制,就是利用编译器编译为中间代码(也就是以Java Bytecode,即字节码形式保存的class文件),并且在各个平台上的JVM(Java虚拟机)的解释器(可以理解为“翻译官”的角色)进行进一步的解释。因此其实java是走两个工序的,“源代码”-"字节码"是一个工序,即编译,他是具有跨平台性的;然后是"字节码"-“机器语言”这一道工序,是把字节码这种形式向机器解释为机器能够读懂的机器码形式,这道工序也是具有跨平台性的。
当然,可能java本身功能有限,所以它还提供了一个叫做JNI的东西,可以加载本地化代码,支持动态链接数据库(即dll)或者是类UNIX系统上的Service Object(即so),为了保证这时仍有一定的通用性,一般会根据运行时系统选择不同的本地库。
C语言本身是有多种版本,或者说是多种编译器的,在许多平台上都可以获得支持,但是这种支持的通用性有限,比如写一个Windows上的程序,在Linux上不能正确编译和运行。因为C语言等,会被各个平台适应的编译器编译为适应这个平台的版本,例如Windows下的二进制可执行文件(.exe格式),他在其他平台是无法执行的,因为他是针对Windows系统的,别的系统的解释器不懂怎么解释这种“奇怪的语言”,因为这个解释器只会“他自己”的“语言”和机器语言。而Java则是有自己的解释器,因此可以代替该系统的解释器。
java程序是跨平台的吗
java程序是跨平台的
因为它有虚拟机(JVM),JAVA程序不是直接在电脑上运行的,是在虚拟机上进行的,每个系统平台都是有自己的虚拟机(JVM),所以JAVA语言能跨平台。
1, java代码不是直接运行在CPU上,而是运行在java虚机(简称JVM)上的。
2,java是先把java文件编译成二进制字节码的class文件,jvm就解释执行class文件。
3,就是因为java是运行在jvm上的,所以它的代码就能不经修改,就能在不同平台的jvm上运行(在UNIX用UNIX的jvm,在linux上用linux的jvm,在windows上用windows的jvm)
假如用windows移植到UNIX,只需把java文件是UNIX的jvm上编译成class文件,然后用jvm运行就可以了
如何理解JAVA是跨平台的?
直接在不同的平台上运行而不用重新编译,这一特性使得java随着web应用的普及而迅速普及起来。
实际上,编译后的java代码并不是传统的二进制代码(如windows下的.exe文件),而是java字节码,这种字节码文件是不能直接在操作系统上执行的。要想在一个操作系统上运行一个java程序必须有一个中间环节来负责将java字节码解释成二进制码,这个中间环节就是java虚拟机(简称jvm)。由于目前大多数操作系统已经实现了jvm,所以java轻松实现跨平台性。
java可以跨平台的原因是什么?
因为Java程序编译之后的代码不是能被硬件系统直接运行的代码,而是一种“中间码”——字节码。然后不同的硬件平台上安装有不同的Java虚拟机(JVM),由JVM来把字节码再“翻译”成所对应的硬件平台能够执行的代码。因此对于Java编程者来说,不需要考虑硬件平台是什么。所以Java可以跨平台。