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

 我来答
尚学堂java学院
2020-11-30 · 百度认证:北京尚学堂科技有限公司官方账号
尚学堂java学院
向TA提问
展开全部

首先我们要理解什么是跨平台,所谓的跨平台就是JAVA写的一份代码可以在任意的操作系统平台上运行。

为什么跨平台会成为一个问题呢?因为每一个操作系统平台支持不同的指令集我们所写的代码经过编译之后只能适用于一个平台,换一个平台就不支持了。而JAVA完美的解决了这个问题。

Java的一大特色就是“write once, run anywhere”即“一次编译,到处运行”。就是说你不用专门为每个平台写一份代码,你写的Java程序在任何平台都能跑起来。

它的实现原理是在系统层面上又增加了一层虚拟机(Java Virtual Machine,简称JVM),且为每个平台都定制了对应的虚拟机。然后Java程序是在虚拟机上跑的,因此平台无关。

Java的运行流程是:程序员写了源代码(Source Code,.java后缀,跨平台),然后经过编译器编译成字节码(Byte Code,.class后缀,二进制文件),字节码是所有虚拟机都能理解的中间文件。然后交给虚拟机(每个平台都有对应的虚拟机)去运行。

所以对“write once, run anywhere”更准确的理解是,“一次编译,到处装虚拟机,所以到处运行”。

整个流程如下图所示。

希望对您有所帮助!~

linzx_520
推荐于2018-08-27 · TA获得超过159个赞
知道小有建树答主
回答量:108
采纳率:100%
帮助的人:81.7万
展开全部
java的跨平台即跨操作系统的平台,也就是说你写的java程序不需要修改就可以在不同的操作系统上运行windows,linux,unix,当然有个前提就是你的操作系统必须有java环境了,即安装了对应的jdk。应为java程序编译成class文件都交给JVM来处理了。

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

自从有了java之后,就把操作系统兼容的工作丢给了jvm了,对于程序员来说就再也不要关心int有几位,还有高位在前还是地位在前的问题了,你只要用java的代码把你程序的逻辑实现出来就可以了,这些兼容的问题就交给jvm去处理吧。这样,如果你写一个程序交付给客户使用,如果客户的环境是运行AIX的,你就不需要在本地也装一个AIX来开发和运行,你可以在windows上完成所有的开发,然后把编译好的文件交给客户就可以了,以后有别的客户需要在Solaris上运行这个程序,你都不用修改,直接拿过去就可以运行,很方便!只有被跨平台开发折磨过的人才能更深得体会到用java开发跨平台应用的优势。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
peng381032913
2012-12-18 · 超过24用户采纳过TA的回答
知道答主
回答量:173
采纳率:0%
帮助的人:60.8万
展开全部
.java首先会被编译成.class文件,这个class文件是字节文件,然后由jvm(java虚拟机)来进行运行,jvm的标准都是一样的,只要你在你的不同平台装上jvm,运行class文件就能执行
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
柠檬和酸菜08A
2012-12-18 · TA获得超过122个赞
知道小有建树答主
回答量:299
采纳率:50%
帮助的人:123万
展开全部
执行的是字节码文件,所以,在不同的平台上只要安装JAVA虚拟机即可。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
tiamo_man_man
2012-12-18 · 超过10用户采纳过TA的回答
知道答主
回答量:110
采纳率:0%
帮助的人:40.6万
展开全部
java能跨平台的主要原因是:它将代码编译成了字节码,然后给java虚拟机运行java代码,java虚拟机也有很多版本,Windows用的 linux用的,然而java虚拟机是用C/C++做的,C/C++是能跨平台的,所以java以此来完成了变相的跨平台,要说真正的java跨平台应用,在整个行业里面 除了国际大企业,没几个公司的java程序是完全实现了的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式