
此博客文章主要来自互联网上Xiaozhen的天空博客:
1. 什么是平台
Java是一种跨平台的编程语言,因此我们首先必须知道什么是平台,然后将整个CPU处理器和操作系统称为平台.
CPU众所周知java跨平台游戏,如果计算机是人,那么CPU就是人脑,它负责思维操作和各个身体部位的命令控制.
有许多类型的CPU. 除了著名的Intel和AMD,还有上面提到的SUN的Sparc,例如IBM的PowerPC等. 这些公司生产的CPU使用相同或不同的指令集.
指令集是CPU中用于计算和控制计算机系统的一组指令.
指令集分为精简指令集(RISC)和复杂指令集(CISC),每个CPU都有自己的特定指令集.
要开发程序,必须首先知道程序在哪个CPU上运行java跨平台游戏,即知道CPU使用的指令集.
这是操作系统. 操作系统是在用户和计算机之间进行交互的界面软件. 不同的操作系统支持不同的CPU. 从严格意义上讲,不同的操作系统支持不同的CPU指令集.
例如,windows和liunx都支持Intel和AMD的复杂指令集,但它们不支持PowerPC使用的精简指令集. 早期的MAC计算机使用PowerPC处理器,因此无法将其直接安装在MAC下. Windows,直到2005年MAC才改为Intel的CPU,这使得可以在MAC下安装Windows.

但是,原始的MAC操作系统仅支持PowerPC,不能安装在Intel上. 我该怎么办?因此,Apple必须重写其MAC操作系统以支持此更改.
最后,我们必须知道不同的操作系统支持不同的CPU指令集. 现在,windows,liunx,mac,solaris都支持Intel和AMD CPU指令集.
有了以上的预言,旺旺老师会告诉你,如果你想开发一个程序,你应该先确定:
1,CPU类型,即指令集类型;
2. 操作系统;我们称这种硬件和软件的组合为平台. 您也可以说“平台= CPU + OS”. 而且由于主流操作系统现在支持主流CPU,因此有时将该操作系统称为平台.
了解平台是什么之后,让我们看看Java跨平台原则.
2. Java跨平台原则
首先看一下与C语言有关的图片:

如果您具有C开发经验,那么这张图片看起来会很容易. 我们知道,只要是使用标准C开发的程序,使用不同编译器编译的可执行文件就可以在相应的平台上运行,例如

可以使用VC编译Windows,然后可以在Windows下运行编译的exe文件;
GCC可用于在liunx下编译,生成的可执行文件可在Liunx上运行.
这时,请考虑一个问题: “ VC编译的exe可以在Liunx上运行吗?”
答案是肯定的. 使用特定编译器编译的程序只能在相应的平台上运行. 也可以说编译器是平台相关的,编译文件也是平台相关的.
我们正在谈论的跨平台语言是跨平台的编译文件,而不是跨平台的源程序. 如果它是源程序,则任何语言都是跨平台语言.
如果您不理解,请参阅以下情况:
例如,火星确实有外星人(毫无疑问,火星是韩国人,火星人也必须由韩国人发明),就像我们观察蚂蚁一样,火星人默默地观察我们,有一天,当人类做某事时这使得火星人真的再也受不了了(比如旺旺的书出版了,你不买,哈哈,呕吐,没关系,有呕吐,呕吐和呕吐的习惯),所以决定来到地球教育我们,但是有一个问题,火星人只能说火星文字,地球人听不懂,我们该怎么办?查找翻译(也许非主流可以帮忙,开个玩笑)!中文翻译将火星人翻译成中文,英文翻译将火星人翻译成英文,等等,但这是问题所在. 中文翻译只能由中文来理解,美式法语则不能理解,英文翻译的翻译文章中国人不理解,也就是说,语言不能跨平台.
在上面的示例中,火星人是C语言,每个国家/地区是平台,中文翻译和英文翻译是相应平台的编译器,而编译后的文章是可执行文件. 尽管原文“火星”与平台无关,但翻译是针对特定国家/地区的,翻译的文章针对特定国家/地区.
接下来,考虑另一个问题,“如何使火星跨平台?”
火星人认为地球上存在世界语,因此他们首先将文章翻译成世界语. 当然,世界语的所有国家的人都不会理解. 没关系火星人还向每个国家提供了世界语译成当地语言的翻译. 只要翻译火星文(翻译成世界语),它就可以在各个国家/地区运行.

还请记住,在此过程中,火星人必须提供两个组成部分. 首先是将火星人翻译成世界语,其次是将世界语翻译成相应的当地语言. 如下图所示:

随着上述案例的积累,我们也了解了语言跨平台的原理: “它不能编译成机器语言,因为它与平台有关,并且被编译成中间语言,即然后由解释器进行编译和解释. “以下是Java跨平台原理的:

上图中的.java是源程序,类似于.c语言. 生成的中间代码是.class. 这是我们上面提到的中间语言. 每个平台上的口译员都是各个国家/地区的翻译.
接下来,我们比较以下两种方法之间的区别:
首先,编译并执行C语言,编译器与平台有关,并且编译生成的可执行文件与平台有关;
第二,解释并执行Java. 编译成中间代码的编译器与平台无关,并且编译生成的中间代码也与平台无关(编译一次,随处运行),
中间代码由解释器解释和执行,该解释器与平台有关,也就是说,不同的平台需要不同的解释器.
这里我将根据实现方法来讨论语言的不同分类:

首先是编译和执行,如上面的C语言所述,它将源程序从特定于平台的编译器一次编译为与平台相关的机器代码,
优点是执行速度快
缺点是它不能跨平台;
第二个是解释和执行,例如HTML,JavaScript,它使用特定的解释器将代码行解释为机器代码,类似于同时翻译,
优点是它可以跨平台,
缺点是执行速度慢且源程序暴露;
第三种是Java引入的“中间代码+虚拟机”方法,
它结合了编译和解释语言的优点,同时可以解决传统语言的麻烦,例如垃圾收集和安全检查(例如虚拟机)
因此,Microsoft的.NET平台也使用了此方法.
首先编译Java,然后进行解释
相同的.class文件将在不同的虚拟机中获得不同的机器指令(Windows和Linux机器指令不同),
但是最终执行结果是相同的
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/sanxing/article-188912-1.html
将来
我们的钱不值钱了
看啦喜欢bb的声音太温暖啦