跨平台c语言为什么能跨平台或是如何跨平台的?

跨平台  时间:2021-09-03  阅读:()

什么叫做“跨平台”?

意思就是说,java写的程序,可以在多种操作系统上运行(Windows,Linux)。

相比之下,C#不具备跨平台的优势(一般来说),C#写的程序,只能在Windows下运行。

高级语言中C,C++等都是具有跨平台特性的。

java的跨平台到底是什么意思

跨平台的意思就是,java程序编译为字节码文件.class文件之后,拷到哪个平台的机器上面都能够无差别的运行,不管你是苹果,还是windows,是32位还是64位,这依赖于java虚拟机,java虚拟机是用各个平台的语言编写的,它能把java字节码文件翻译为相应平台的语言。

。

。

。

javascript跨平台是什么意思

javascript语言是HTML里运行的脚本语言,在任何浏览器里都可以运行(除非是把javascript脚本功能关了),这样就可以在手机、平板电脑、个人电脑上都可以运行。

如何实现跨平台

所有能够实现完全跨平台都是别人把跨平台的事情做好了,你只需要处理相同的事情。

JAVA中JVM不同平台安装的代码是不同的,跨平台的事情JVM已经处理好,你是在JVM做事情,等等。

什么是JVM?Java跨平台的原理是什么?

java virtual machine Java跨平台的原理 Java的跨平台是通过Java虚拟机(JVM)来实现的。

Java源文件的编译过程 Java应用程序的开发周期包括编译、下载、解释和执行几个部分。

Java编译程序将Java源程序翻译为JVM可执行代码—字节码。

这一编译过程同C/C++的编译有些不同。

当C编译器编译生成一个对象的代码时,该代码是为在某一特定硬件平台运行而产生的。

因此,在编译过程中,编译程序通过查表将所有对符号的引用转换为特定的内存偏移量,以保证程序运行。

Java编译器却不将对变量和方法的引用编译为数值引用,也不确定程序执行过程中的内存布局,而是将这些符号引用信息保留在字节码中,由解释器在运行过程中创建内存布局,然后再通过查表来确定一个方法所在的地址。

这样就有效的保证了Java的可移植性和安全性。

Java解释器的执行过程 运行JVM字节码的工作是由解释器来完成的。

解释执行过程分三步进行:代码的装入、代码的校验和代码的执行。

装入代码的工作由“类装载器”(class loader)完成。

类装载器负责装入运行一个程序需要的所有代码,这也包括程序代码中的类所继承的类和被其调用的类。

当类装载器装入一个类时,该类被放在自己的名字空间中。

除了通过符号引用自己名字空间以外的类,类之间没有其他办法可以影响其它类。

在本台计算机上的所有类都在同一地址空间内,而所有从外部引进的类,都有一个自己独立的名字空间。

这使得本地类通过共享相同的名字空间获得较高的运行效率,同时又保证它们与从外部引进的类不会相互影响。

当装入了运行程序需要的所有类后,解释器便可确定整个可执行程序的内存布局。

解释器为符号引用同特定的地址空间建立对应关系及查询表。

通过在这一阶段确定代码的内存布局,Java很好地解决了由超类改变而使子类崩溃的问题,同时也防止了代码对地址的非法访问。

随后,被装入的代码由字节码校验器进行检查。

校验器可发现操作数栈溢出,非法数据类型转换等多种错误。

通过校验后,代码便开始执行了。

Java字节码的两种执行方式 1、即时编译方式:解释器先将字节码编译成机器码,然后再执行该机器码。

2、解释执行方式:解释器通过每次解释并执行一小段代码来完成Java字节码程 序的所有操作。

  通常采用的是第二种方法。

由于JVM规格描述具有足够的灵活性,这使得将字节码翻译为机器代码的工作具有较高的效率。

对于那些对运行速度要求较高的应用程序,解释器可将Java字节码即时编译为机器码,从而很好地保证了Java代码的可移植性和高性能。

JVM规格描述 JVM的设计目标是提供一个基于抽象规格描述的计算机模型,为解释程序开发人员提供很好的灵活性,同时也确保Java代码可在符合该规范的任何系统上运行。

JVM对其实现的某些方面给出了具体的定义,特别是对Java可执行代码,即字节码(Bytecode)的格式给出了明确的规格。

这一规格包括操作码和操作数的语法和数值、标识符的数值表示方式、以及Java类文件中的Java对象、常量缓冲池在JVM的存储映象。

这些定义为JVM解释器开发人员提供了所需的信息和开发环境。

Java的设计者希望给开发人员以随心所欲使用Java的自由。

JVM是为Java字节码定义的一种独立于具体平台的规格描述,是Java平台独立性的基础。

Java程序执行与C/C++程序执行的对比分析 如果把Java源程序想象成我们的C++源程序,Java源程序编译后生成的字节码就相当于C++源程序编译后的80x86的机器码(二进制程序文件),JVM虚拟机相当于80x86计算机系统,Java解释器相当于80x86CPU。

在80x86CPU上运行的是机器码,在Java解释器上运行的是Java字节码。

Java解释器相当于运行Java字节码的“CPU”,但该“CPU”不是通过硬件实现的,而是用软件实现的。

Java解释器实际上就是特定的平台下的一个应用程序。

只要实现了特定平台下的解释器程序,Java字节码就能通过解释器程序在该平台下运行,这是Java跨平台的根本。

当前,并不是在所有的平台下都有相应Java解释器程序,这也是Java并不能在所有的平台下都能运行的原因,它只能在已实现了Java解释器程序的平台下运行。

c语言为什么能跨平台或是如何跨平台的?

c语言能跨平台是因为各个平台有相应的c编译器,只要源代码相同,编译器编译出来的二进制文件就会实现相同的功能,但是这些二进制文件本身是不一样的 exe就是2进制的,但不完全是原来程序的代码,还包括了windows系统的一些代码 科普一下,C最早是出现在Unix下的,Windows那都是后话了,C出现的时候Windows还没开发出来呢。

C有个比较特别的称呼,叫中级语言,因为它有高级语言的特性又能跟底层硬件很好的交互所以才有这么个说法。

DOS时代在C里面嵌上一段汇编直接从并口读个数上来那是很流行的,现在没见谁在VC里面这么干吧。

Windows也不让啊。

想访问硬件怎么也得通过驱动。

说远了,C在多种平台下可以实现代码级的共享,跨平台就需要重新编译了。

但是,我也见过有的软件是可以在多种平台上运行了,可能有什么特别的技术,可以先识别一下操作系统,再运行相应的代码。

这个应该是在编译的时候有特殊的技巧。

C编译、连接器网上有现成的代码,一般不是很专业的技术人员没有去研究它。

我一直把玩编译原理的视为天人,有能力把编译原理那本书看完的就很不容易了,再要能领会其中精要那就成才了,能把龙书虎书鲸书都搞明白的那就是一流专家了。

HostYun(25元)俄罗斯CN2广播IP地址

从介绍看啊,新增的HostYun 俄罗斯机房采用的是双向CN2线路,其他的像香港和日本机房,均为国内直连线路,访问质量不错。HostYun商家通用九折优惠码:HostYun内存CPUSSD流量带宽价格(原价)购买地址1G1核10G300G/月200M28元/月购买链接1G1核10G500G/月200M38元/月购买链接1G1核20G900G/月200M68元/月购买链接2G1核30G1500G/月...

丽萨主机122元/每季,原生IP,CN2 GIA网络

萨主机(lisahost)新上了美国cn2 gia国际精品网络 – 精品线路,支持解锁美区Netflix所有资源,HULU, DISNEY, StartZ, HBO MAX,ESPN, Amazon Prime Video等,同时支持Tiktok。套餐原价基础上加价20元可更换23段美国原生ip。支持Tiktok。成功下单后,在线充值相应差价,提交工单更换美国原生IP。!!!注意是加价20换原生I...

零途云:香港站群云服务器16IP220元/月,云服务器低至39元/月

零途云(Lingtuyun.com)新上了香港站群云服务器 – CN2精品线路,香港多ip站群云服务器16IP/5M带宽,4H4G仅220元/月,还有美国200g高防云服务器低至39元/月起。零途云是一家香港公司,主要产品香港cn2 gia线路、美国Cera线路云主机,美国CERA高防服务器,日本CN2直连服务器;同时提供香港多ip站群云服务器。即日起,购买香港/美国/日本云服务器享受9折优惠,新...

跨平台为你推荐
网页图标网站ICO图标若想全部添加到网页中,有什么简便方法吗?什么是cookie电脑里的cookies是什么意思,什么中文意思?支付宝账单查询支付宝怎么查询交易记录小项目想创业,二十万以内有什么好项目?招行信用卡还款招商银行信用卡还款日如何计算burndownburn down是否及物?能用被动语态吗?售后软件电脑维修需要哪些必备软件黑屏操作麻烦问一下 黑屏的各个指令360官网打不开360系统防护无法开启?怎么办?急!!!!!gps简介GPS代表什么含义?
万网域名注册 东莞服务器租用 电信服务器租赁 VPS之家 怎么申请域名 科迈动态域名 主机屋免费空间 国外空间 国外免费全能空间 国外代理服务器地址 广州服务器 umax120 服务器监测 香港新世界中心 电信托管 跟踪路由命令 注册阿里云邮箱 香港博客 发证机构 cdn免备案空间 更多