云栖问答

找不到答案?去提问题

java c++ 2018-10-29 23:55:20

[@徐雷frank][¥20]什么是JAVA的平台无关性

与C C++相比,JAVA是如何实现与平台无关的

5个回答

0

徐雷frank 已采纳

Java的平台无关性,概念听起来比较抽象。说简单通俗一线。Java的跨平台执行。
我们编写的Java代码可以在不同的操作系统平台,Winlinux、mac等系统上运行、、
底层使用了JVM的Java虚拟机托管执行Java代码。
Java代码第一次编译生成的是中间代码。在JVM里执行在根据具体的系统平台编译成对应的CPU指令执行。
做到与系统平台上的表面无关。

0

hiekay

java最重要的是JVM,JVM所指的就是Java虚拟机。Java正是凭借Java虚拟机来实现其平台无关性的。通过在机器与编译程序之间加入一层抽象(即JVM)来实现脱离平台这一性质。Java虚拟机面向编译器给其提供相同的接口(即各平台编译器相同),这就是说,编译器只要面向Java虚拟机生成Java虚拟机可以理解的代码,那么就可以通过不同平台的不同解释器来生成与平台相对应的机器码来执行Java程序。虚拟机暴露给编译器的接口是相同的,而虚拟机的解释器针对不同的平台而不同。

0

拼命三郎ol

java是通过虚拟化技术实现的跨平台或者说平台无关性。虚拟化分为两种,一种是在操作系统中对硬件进行抽象,实现一个硬件的抽象层,然后创建的虚拟操作系统都通过这个抽象层调用硬件资源;另外一种是在操作系统中对系统的API进行抽象,JAVA叫JVM,实现一个API软件的抽象层,在不同的操作系统中安装JVM,因为JVM的上层都是统一的API接口,所以形式上表现出来就是一处编译处处使用,感觉跟底层平台无关。

0

禅师

简单来说,使用 JAVA 语言编写出来的源代码文件 .java,被 JAVAC 编译器编译成字节码文件 .class (及压缩打包成*.jar),可以不加修改地拷贝到其他平台上、同该平台上的 JVM 运行,该平台的 JVM 使用 JIT技术 将 .class 再动态编译为可以当前平台上运行的代码指令。

0

turingtest

我们知道,.exe文件是windows系统下的可执行文件,类似的,.class文件就是JVM(Java虚拟机)上的“可执行文件”。Java代码(.java)经编译后生成一种二进制的文件(.class),这是一种和具体平台无关的文件,怎么说呢?我们的Java程序在平台上不是直接运行于系统上的,而是通过JVM来运行,不同平台的JVM是不同的,但是对外都提供相同的接口,这样.class文件不管在什么平台下都能和这些“相同的”接口正确“嵌合”,具体能怎样在不同的平台下运行出相同的结果就要靠各自平台上的JVM来实现了。

1
GO
919
浏览
0
收藏
邀请他人回答

Node.js 性能平台(Node.js Performance Platform)是面向中大型 Node.js...

为您提供简单高效、处理能力可弹性伸缩的计算服务,帮助您快速构建更稳定、安全的应用,提升运维效率,降低 IT 成本...