java可以跨平台的原因是什么,JAVA为什么可以跨平台

2020-12-13 16:36:28 字数 4701 阅读 4524

1楼:匿名用户

因为java程序编译之后的**不是能被硬件系统直接运行的**,而是一种“中间码”——字节码。然后不同的硬件平台上安装有不同的java虚拟机(jvm),由jvm来把字节码再“翻译”成所对应的硬件平台能够执行的**。因此对于java编程者来说,不需要考虑硬件平台是什么。

所以java可以跨平台。

2楼:天蝎丿灰尘

因为他所有的 玩意儿都是建立在 虚拟机上的啊, 比如我们windows上要装windows版本的jdk,在linux上要装linux版本的jdk,jdk就是虚拟机吧,有了运行环境当然能运行咯,

所以其实java并不是真正的跨平台,只是 在所有平台中都创建了一个统一的运行环境

java为什么可以跨平台

3楼:好程序员

因为它有虚拟

机(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运行就可以了

4楼:匿名用户

中间**的策略

~~~~~~~~~~~

java为什么可以跨平台

5楼:匿名用户

因为他是运行在虚拟机里面的,而不同的平台他已经有了运行在各平台的虚拟机.所以每个平台都会有对应的jdk版本

6楼:匿名用户

具体描述太多,说核心,有两个:

尽量避免了平台特殊使用的底层接口和底层api;

采用了多种编译器,基本上是一个平台一个编译器(甚至多个编译器),这样相同的**通过不同的编译器编译,就能在不同的平台上使用了。而其它语言不可跨平台是因为在设计之初,没有考虑这个问题,大量使用了不可移植的底层接口。

java的跨平台的含义是什么?为什么java可以跨平台

7楼:匿名用户

首先,理解平台的含义是什么..平台的意思.个人感觉就是指操作系统,还有一层意思就是运行不同操作系统的不同的硬件设备;

也就是说,某一种**编译后,既可以在a操作系统下运行,也可以在b操作系统下运行...或者是在c设备上运行.

那么除了java以外还有什么跨平台的语言么?当然有啊,python(但是能力有限,只能不能跨位,就是32不能跨到64,同时也不能跨版本),scala..都可以..

但是相对于java,它的跨平台性能就要差一点..(其实java跨平台也不是那么完美,很多时候还是有很多陷阱)

至于java如何实现的跨平台,那就跟java这个语言的机制有关系了.java**被javac编译成java中间码(就是.class文件)jit编译器再把java中间码编译成nativecode,最终在芯片上执行..

能做到跨平台,就在编译nativecode这步做文章...不同的jvm通过不同的技术,将java中间码按照相同的规范编译成高效的,对应不同平台的原生机器码,从而实现了同一中间码在不同设备上的同样执行结果..以此实现的java跨平台..

2017年8月16日 12:40:34

什么是jvm?java跨平台的原理是什么?

8楼:匿名用户

jvm 是java virtual machine的缩写 他的意思是java虚拟

机。它有针对各种操作系统的接口。它先把你的**在虚拟机中运行,然后通过不通的接口调用适合这类操作系统的方法,吧你的**在不通的环境下实现。这就是他跨平台的原理

9楼:徐

jvm是java虚拟机。

简述java 的工作机制。为什么它能实现跨平台

10楼:

java的跨平台即跨操作系统的平台,也就是说你写的java程序不需要修改就可以在不同的操作系统上运行windows,linux,unix,当然有个前提就是你的操作系统必须有java环境了,即安装了对应的jdk。应为java程序编译成class文件都交给jvm来处理了。

在java之前,跨平台是很痛苦的事情,主要是因为所有对于系统的调用,在不同的操作系统下结果都不一样,简单的来说,int的长度在不同操作系统里面就不一样,甚至于连字节排列的顺序都不同。调用同一个函数返回的格式也不同,因此,写程序的人自己要对不同的系统非常了解,如果真的需要对不同操作系统进行兼容,要在程序里面写很多if,编译的时候要先判断使用的操作系统,创造很多环境变量才能编译,而且编译好的二进制可执行文件只能在本系统上运行。如果你写的是个功能库供别人调用的,那么光对操作系统的判断就占了**的绝大部分,而且,还要你在不同平台下进行测试,这可是个艰苦卓绝的工作。

自从有了java之后,就把操作系统兼容的工作丢给了jvm了,对于程序员来说就再也不要关心int有几位,还有高位在前还是地位在前的问题了,你只要用java的**把你程序的逻辑实现出来就可以了,这些兼容的问题就交给jvm去处理吧。这样,如果你写一个程序交付给客户使用,如果客户的环境是运行aix的,你就不需要在本地也装一个aix来开发和运行,你可以在windows上完成所有的开发,然后把编译好的文件交给客户就可以了,以后有别的客户需要在solaris上运行这个程序,你都不用修改,直接拿过去就可以运行,很方便!只有被跨平台开发折磨过的人才能更深得体会到用java开发跨平台应用的优势。

11楼:

java能跨平台的主要原因是:它将

**编译成了字节码,然后给java虚拟机运行java**,java虚拟机也有很多版本,windows用的 linux用的,然而java虚拟机是用c/c++做的,c/c++是能跨平台的,所以java以此来完成了变相的跨平台,要说真正的java跨平台应用,在整个行业里面 除了国际大企业,没几个公司的java程序是完全实现了的

12楼:匿名用户

.java首先会被编译成.class文件,这个class文件是字节文件,然后由jvm(java虚拟机)来进行运行,jvm的标准都是一样的,只要你在你的不同平台装上jvm,运行class文件就能执行

13楼:匿名用户

执行的是字节码文件,所以,在不同的平台上只要安装java虚拟机即可。

14楼:你好呀

其他的系统是通过java来开发的,以java为基础

15楼:中公教育it优就业

通过使用java虚拟机,可以解决跨平台的问题。但它如何在不同的处理器和操作系统上工作,让我们一步一步地理解这个过程。

步骤1)显示两个数字相加的**是system.out.println(1 + 2),并保存为.java文件。

步骤2)使用java编译器将**转换为称为字节码的中间**。输出是.class文件。

步骤3)任何平台都不理解此**,而只是称为java虚拟机的虚拟平台。

步骤4)此虚拟机驻留在操作系统的ram中。当虚拟机被提供此字节码时,它识别它正在处理的平台并将字节码转换为本机器码。

实际上,当你在pc上工作或浏览网页时,只要看到其中任何一个图标,就可以确保将java虚拟机加载到ram中。但是,更有意义的是,编译后的**不仅可以在所有pc平台上运行,还可以运行支持java的移动设备或其它电子设备。

因此:“java是一种编程语言,也是一种平台”

java简答题 java跨平台的含义是什么,为什么java可以跨平台?

16楼:愤怒的哈希

跨平台的含义是 可以在windows ,linux 等操作系统上运行 可以跨平台是因为java有虚拟机 编译之后 用虚拟机解释执行 不依赖平台

java跨平台到底是什么意思?能否举个通俗易懂的例子???急啊

17楼:匿名用户

以前它有一个口号:一次编译、到处运行。

就是说**编译好之后得到一个字节码而不是传统的机器码的程序,当我们运行在不同的操作系统上的时候,每个操作系统都有相应的 java 虚拟机来解释这些字节码,因为跟操作系统平台相关的部分由 java 虚拟机来负责,这就是所谓的跨平台。对比一下传统的程序,一个 windows 上的 exe 没办法运行在 linux 上,反过来也是一样。

另外,java 使用的包名和类路径也是为跨平台提供支持的,包名的层次结构就是与目标树和jar内的目录结构对应的,因此程序只看到一个逻辑的层次结构,真实运行时我们则是在命令行给出 -classpath 参数,这时的 classpath 参数则是与操作系统平台相关的,但要知道这与**本身没有关系,**依然是跨平台的。

18楼:匿名用户

java跨平台是同一java源码被编译后得到的字节码文件可以在不同的操作系统上运行

例如:一个java程序,编译得到class后可以在windows,linux,mac等等的操作系统上运行

java先编译后解释

同一个.class文件在不同的虚拟机会得到不同的机器指令(windows和linux的机器指令不同)但是最终执行的结果却是相同的

引流吧平台是否可以退款,引流吧平台是以什么为主的

1楼 河南引流吧 您好,这个要看情况的,建议先联系您的专属客服咨询 2楼 大王庄卡 公司,里面的钱别想提出来不可能的 ,你联系客服说提现直接秒挂,再打没人接的,已经联系 了 ,主要的是我在北京 不接 ,要是在河南就好了 直接 他们 公司 。 买了会引流的商品,骗人的,怎么退 3楼 匿名用户 会引流的...

眉毛稀少的原因有哪些,眉毛稀少的原因是什么,还可以长出来吗

1楼 匿名用户 引起眉毛变淡的原因很多,就连日常的饮食习惯都会影响到眉毛的多少。 不过眉毛若是比较少还是可以改变的。啊达琪 就能够促进眉毛生长出来。 据说生姜也有增长毛发的功能 不嫌麻烦的话可每天坚持擦拭下, 2楼 瑞丽诗吉医生 有的人是天生的稀少,有的人是后天掉成的 不管是哪种情况引起的都是可以种...

java中的flag用,java中flag是什么意思?求解释下详细点它可以代替输出内容用在后面的语句中吗?例如【syste 100

1楼 匿名用户 flag,没有这个关键字,一般都是自己定义的一个变量而已,一般存true or false或者123之类的,用于做一个开关控制。 2楼 匿名用户 java中有flag吗,不知道你什么意思。 java中flag是什么意思?求解释下详细点它可以代替输出内容用在后面的语句中吗?例如 sys...