跨平台语言

现在主流的手机平台很多,比如:Windows开发的Windows Phone(WP-"X"),

Apple(苹果公司)开发的ios,Google(谷歌)开发的android,等等!

而这些操作系统平台的语言支持大同小异;

1、Windows Phone上支持VB,C#,C,C++;

2、iOS上支持Object-c,C,C++;

3、android上支持java,C,C++;

既然如此,我们要想开发一款应用,而且兼容主流平台都能应用,而且不想写太多的代码,我们如何选择开发语言呢?答案是:我们可以选择C++语言。

C++语言是如何跨平台的?

1、首先说一下,C#,java也跨平台,它们是怎样跨平台的?

C#,java跨平台,指的是,经过“编译系统” 编译,生成中间文件“字节码”,这样的字节码经过不同平台“解释器”再解释一次,就变成了适应各个平台的“机器码”。

2、而C++语言,源代码是直接经过编译器编译成“操作系统”可以执行的“机器码”,

那么它是怎么跨平台的呢?因为支持C++语言的各个平台的架构不同(比如CPU能够处理的指令集不一样),所以一份C++源代码要想在另一个操作系统平台上执行,就必须用该平台相对应的C++代码编译器对C++源代码重新进行编译,生成该平台可以直接执行的机器代码。

它的执行过程是:预处理->编译->汇编->链接->机器码

3、我一直以为:汇编指令是字节码,而不是二进制文件,实际上错了,字节码也是二进制文件,只不过它与具体的机器码不同,具体的机器码是与具体的运行设备有关的,而汇编指令是与具体的硬件环境无关的。

所以说java,C#跨平台是建立在“虚拟机”的基础上的,通过虚拟机,将字节码 通过“解释器”,解释成 机器码。(java的虚拟机,C#的.net运行时环境)。所以也有的人说java,C#是解释性语言,而C、C++是编译性语言。

java,C#的跨平台受到"虚拟机"的限制,如:

1、.net环境只能在windows下有,Linux(Android),和Unix(ios)都不支持;

2、java虚拟机平台主要是Android支持,Windows(WP)和Mac(ios)都不支持;

3、.net环境、java虚拟机 在windows上默认是没有安装的。

4、java虚拟机可以配置在mac,windows(PC操作系统)上,但是不能配置在WP,IOS(移动操作系统)上,只能配置在android(移动操作系统)。

由于C/C++不受虚拟机限制,一份同样的源程序,只需要在每个不同的平台重新编译一次,就可以在各种平台上运行应用程序。而java则是编译一次,然后放到不同平台的java虚拟机上运行!

因为java最后是解释执行的,C,C++不需要解释执行,所以C++的执行速度更快一些!

总结一下:

1、C++跨平台是一份源代码,在不同的平台上编译;

2、java跨平台是一份源代码,编译后生成中间字节码,然后通过 不同平台的java虚拟机来解释执行的。

时间: 2024-10-07 21:46:17

跨平台语言的相关文章

跨平台OR 跨语言

一.跨平台OR 跨语言 跨平台--JAVA 跨平台概念是软件开发中一个重要的概念,即不依赖于操作系统,也不信赖硬件环境. 一个操作系统下开发的应用,放到另一个操作系统下依然可以运行.相对而言如果某种计算机语言不用修改代码即可做到高度跨平台,那么此语言就越抽象,硬件控制力就越低,只适合开发高度抽象的模型系统.诸如java,delphi和易语言,都已做到了跨平台.它们将可以在多种系统下开发,运行和维护. 广义而言,一般的计算语言都可做到跨平台,开发商只需要提供各种平台下的Runtime/中间件环境即

Python语言的特点、程序设计基本方法

通用语言 脚本语言 开源语言 跨平台语言 多模型语言 IPO模式 Input + process + output 算法是处理的灵魂 编写程序步骤: 1.分析问题的计算部分 2.将计算部分划分为确定的IPO三部分 3.完成计算部分的核心处理办法 4.编写程序 5.调试测试 6.升级维护,使程序长期正确运行,适应需求的微小变化

C语言与java的区别

相同的地方: 1.语法类似:由于Java可以算是从C++发展而来的,因此Java与C语言的语法比较类似 2.编程的熟练程度就是对语言程序库的掌握程度: 从某种程度上来说,编程语言都是由语法和相应的程序库所构成,Java有自身的类库,C语言则有标准库.所谓的编程,就是使用与语法来调用和组合程序库中的函数. 不同的地方: 1.内存管理 在Java中,基本不用考虑内存的问题,如果想用一个对象,new一个就可以,这个过程的背后则是JRE为对象分类的一定内存,当JRE发现你不再使用这个对象的时候,他就会自

【渗透课程】第一篇-Web渗透需要接触的语言

---恢复内容开始--- 上一篇我们讲过了,Web渗透的基本原理,在原理中我们也提到了Web应用程序(脚本语言),本章就谈到了Web渗透要涉及的语言. 涉及语言: 1.html:是前段语言的其中一个,也是最常见的,涉及审查元素的修改以及自行构造界面(如构造上传点) 2.JavaScript:也是属于前段语言之一(掌握这个语言可以更了解xss跨站脚本攻击) 3.数据库:这里的数据库不止是一种语言,而是包含了多种数据库(如我们常见MySQL,mssql,db2),而我们要掌握的就是操控数据库的SQL

Java C# .net 和 C C++ 跨平台的区别

当前主流的手机平台很多,而各个主流的平台的语言支持大同小异:如 1.windows系统WP8上主要支持 VB, C#, c/c++, 2.苹果系统ios上支持 object-c, c/c++ 3.android系统上支持 java, c/c++ 那么跨平台语言该如何选择? C#.net java 不是跨平台的吗,它们和C/C++的跨平台有什么区别? 方便他人亦是方便自己,如果觉得还行就点下赞吧,这样可以帮助其他人更快的找到解决问题的方法:有疑问的也可留言哦, 谢谢! 工具/原料 Visio Wi

IT兄弟连 Java语法教程 Java语言背景

驱使计算机语言革新的因素有两个:程序设计技术的改进和计算环境的改变.Java也不例外.在大量继承C和C++的基础之上,Java还增加了反应当前程序设计技术状态的功能与精华.针对在线环境的蓬勃发展(Internet),Java为高度的分布式体系结构提供了流水线程序设计的功能. Java是1991年由Sun Microsystems(曾经2000亿美元全球市值第一,google市值第二但是只有300多亿美元,而同期的苹果公司市值只有不到100亿美元.当今苹果公司万亿市值也是全球第一唯一万亿市值的上市

010 深入理解Python语言

目录 一.概述 二.计算机技术的演进 2.1 计算机技术的演进过程 三.编程语言的多样初心 3.1 编程语言有哪些? 3.2 不同编程语言的初心和适用对象 3.3 2018年以后的计算环境- 四.Python语言的特点 五.Python特点与优势 六.如何看待Python语言? 七."超级语言"的诞生 7.1 机器语言 7.2 汇编语言 7.3 高级语言 7.4 编程语言种类的发展 7.5 超级语言 八.小结 一.概述 计算机技术的演进 编程语言的多样初心 Python语言的特点 &q

atitit.html5 vs 原生 app的区别与选择

atitit.html5  vs 原生 app的区别与选择 1. html5的优点 1 1.1. 最大优势::在跨平台(ios苹果,android安卓等) 1 1.2. 开放性 1 1.3. 快速的更新,热更新 2 1.4. 开发成本上 2 1.5. 碎片化 2 2. 原生app 应用的优点 2 2.1. 对游戏等要求性能的app更好 2 2.2. 原生应用最大的优势就是可以访问设备中的所有功能 2 2.3. 对摄像头.电话本,相机,游戏等操作支持的好,对语音,联系人和日历,也支持比较好. 2

浅谈 C/S 和 B/S 架构

概述 在这个信息急剧膨胀的社会,我们不得不说人类正进入一个崭新的时代,那就是信息时代.信息时代的一个主要而显著的特征就是计算机网络的应用.计算机网络从最初的集中式计算,经过了Client/Server阶段(有两层C/S和三层C/S),已发展到目前最流行的 Browser/Server计算模式.其中颇具争论和影响力的是C/S以及B/S架构,C/S是一种历史悠久且技术非常成熟的架构,B/S是新生代架构,从C/S派生出来,有很多创新,在web信息时代虎虎生威. C/S架构 一.C/S架构及其背景 C/