问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

Java的跨平台特点是由什么保证的?

发布网友 发布时间:2022-04-23 17:14

我来回答

1个回答

热心网友 时间:2023-10-10 11:30

1、什么是平台
我们一般将CPU处理器和操作系统的整体叫做平台。CPU种类繁多,如Intel、AMD、PowerPC等等。不同的CPU有不同的特定的指令集来计算和控制计算机系统。操作系统是用户和计算机之间交互的界面软件,不同操作系统支持不同的CPU,即不同操作系统支持不同的CPU指令集,但不一定一种操作系统唯一支持一种指令集。像Windows、Linux、Mac都支持Intel和AMD的CPU指令集。

如果我们要开发程序,则我们需要确认平台是什么——CPU的类型即指令类型和操作系统。如果用标准C开发程序,使用不同的编译器后的可执行文件是可以在对应的平台上运行的。比如使用GCC编译,生成可执行文件可以在Linux上运行。使用特定编译器编译的程序只能在对应的平台上运行,编译器是与平台相关的,编译后的文件也是与平台相关的。这种执行方式称作编译执行,它把源程序与特定平台的编译器一次性编译成平台相关的机器码。优点是执行速度快,缺点是无法跨平台。

2、Java跨平台原理

接着我们看看Java程序的跨平台性是怎么实现的——Java程序被编译成一种中间语言,再由JVM将Java字节码(.class文件)翻译成机器语言。Java源程序编译的结果是生成Java字节码,不同平台下生成的Java字节码是相同的,但由JVM翻译成的机器码却不一样。再次强调,跨平台的是Java程序,因为其后面会被与平台不相关的编译器编译成与平台不相关的中间码。JVM不是跨平台的。不同平台下需要安装不同的JVM。

总结一下,无论我们使用什么语言编程,最终要在设备上运行,那一定要被翻译成机器能识别执行的机器码。C、C++这种编译性语言,在不同的编译器下直接编译特定的机器码,在特定的平台下运行。而Java则属于先编译后解释型的语言。与平台不相关的编译器编译成了与平台不相关的.class文件,然后再由JVM解释成其平台下的机器码。就是由于多出的这个机制,让Java程序看起来与众不同。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
ef英语哪个好 EF英孚英语培训怎么样? 英孚英语好不好 EF英孚教育到底好不好 大佬们,麦芒7和荣耀10那个值得入手?2500以下的机子还有啥好推荐的么... 介绍几款2500元以前的手机 像素一定要高 其他的不做要求 近期想入手一部安卓手机,价格2200到2500左右…买HTC desire Z还是 三星... 笔记本忘记开机密码怎么办急死了 笔记本电脑屏幕开机锁忘记密码 怎么办?急死了 华硕笔记本电脑开机密码忘记了怎样找回?系统是Windows 7旗舰版... 迅雷离线下载的取回本地什么意思? 我梦见自己捡了好多100元,什么预兆 迅雷离线下载如何取回文件的小技巧 简述JAVA 的工作机制。为什么它能实现跨平台 梦见在河边捡到黄金龟 迅雷重新下载把原来的删到哪里了?能找回吗? JAVA语言为什么能跨平台? 迅雷离线下载之后,取回本地,完成之后,文件消失不见了,为什么? 请问迅雷离线下载,云端下载一半的文件怎么取回本地啊? 迅雷正在下载和离线空间的取回本地 很多次梦到捡金子,梦到自己开车,可是实际本人不会开,这意味着什么? 迅雷7的离线下载怎么取回本地? 梦见捡金子然后卖掉 梦见在一段上坡路捡到很多金银首饰是什么意思? 迅雷离线下载后怎么操作才能取回本地? 迅雷取回本地的文件怎么播放 迅雷高速下载如何取回本地 迅雷离线取回本地后文件在哪里? 主楼超过多少米后要设置后浇带?是哪本规范的要求? 混凝土后浇带的施工工艺 迅雷离线文件取回本地的问题 Java 虚拟机 如何实现跨平台的? 在这台电脑装了JDK能运行java程序,在另一台电脑不装JDK怎样运行java?那它的可移植性又是何意? 关于JAVA跨平台编译的疑问 博学谷从0开始学Java教程-2-Java语言跨平台原理 姓苏取什么名字好呢?男女都可以。 姓苏取什么名字具有文艺气息? 对java跨平台的疑惑!使用了JNI,或native的方法,就不能跨平台吗? 姓苏的女孩子该取什么名字才好听呢? 怎么打开jdk?新建.java文本文档然后每次自动用vc2005打开 苏字取名寓意 姓苏取什么名字好听 同样都是跨平台开发的语言,为什么说。NET比JAVA快 什么方法能使小臂变得纤细 姓苏的取名大全 2020年2月28日早上4点08分出生男孩,姓苏取什么名字好? 怎样使小臂变粗 女孩,姓苏,取什么名字好? 怎样可以让胳膊和小臂变粗? 姓苏的取什么名字好啊t