导航:首页 > 源码编译 > 如何保证一次编译多次运行

如何保证一次编译多次运行

发布时间:2022-05-28 10:19:54

① Python同一个程序只需一次编译,即可重复执行

咨询记录 · 回答于2021-12-01

② 哪些特性使得“一次编译,到处运行”成为可能

  1. 虚拟机和字节码

  2. 标准API库。

首先程序不能处处运行的原因在两处,一个是CPU,一个是系统。CPU因为机器码不同的缘故,导致无法通用,解决办法,自己制作虚拟机,虚拟机运行字节码的方式,字节码可以认为是虚拟机的机器码(.net的虚拟机叫运行时其实道理一样)。。。如果编译成字节码,那么就能在虚拟机上运行,不管他是什么CPU,只要有运行字节码的虚拟机就OK。。。。

系统问题,系统不同系统内核和API不同,解决办法,标准API库,不同的系统的内核对象其实大致原理和功能相似只是实现不同,将API标准化为比如java API等等,问题被解决。。

但“一次编译,到处运行”只是个理想,几乎从来没有真正这么用过,。最主要还是API标准化几乎让这种事成为不可能。。。最简单的比如用手机打电话的功能,移植到PC上,PC根本没有这个功能,当然这是个极端的例子,到什么地方做什么事,统一根本无意义,只会带来兼容性麻烦。。。

③ java的"一次编译,到处运行"的机制是如何实现的

JVM是一个java虚拟机,所谓的java虚拟机就是和普通的虚拟机一样,拥有自己的CPU,RAM之类的。我们所使用的操作系统是Windows的操作系统,Windows操作系统支持的可执行文件是EXE文件,也就是说在Windows的操作系统上只有EXE的文件是可以直接被操作系统解释为底层机器语言并进行运行的。而java虚拟机可以支持的是.class的可执行文件,在java的虚拟机中遇到.class的文件就可以直接翻译成java虚拟机所能是别的底层机器语言并进行执行。这就是JVM的机制,正是因为java的这种机制才实现了java的跨平台,在不同的平台上安装能够在相应平台上运行的虚拟机,然后在java虚拟机中运行java的源程序,“一次编译,多次执行”就此实现了。
所以java的跨平台是离不开虚拟机的支持的。虚拟机充当着java源程序和操作系统之间的中间,不同的操作系统只需要寻找相应的中介就可以实现在不同的操作系统上运行。而java的编译只是吧.java文件编译为.class字节码文件而已,然后把字节码交给虚拟机去执行。
虚拟机在执行的时候是读一句字节码文件人后解释一句给操作系统听,这就是为什么java是解释型的语言。
所谓的编译型的语言是指这种语言被编译之后生成的是可以直接供操作系统执行的010101文件,像C,C++都是编译型的,java因为中间有JVM这么个东西所以是解释型的。

④ Java语言是如何做到可移植性强、跨平台、“一次编译到处运行”的呢

因为java代码是运行在JVM上的,不同的平台有不同的JVM,如Windows和Mac上的运行同一款游戏,他们的实现方式肯定不一样,但你都能读取游戏的存档文件。你不需要知道JVM在不同平台的实现方式,但他们解析java的class文件是一样的逻辑,就是这样java实现跨平台的。

⑤ java如何实现一次编译到处运行

  1. Java编程语言,即语法。

  2. Java文件格式,即各种文件夹、文件的后缀。

  3. Java虚拟机(JVM),即处理*.class文件的解释器。

  4. Java应用程序接口(Java API)。

⑥ JAVA一次编译,处处运行原理(考试用的)

核心是java一次编译的结果是生成一种java虚拟机可以执行的.class文件。而只要装有java虚拟机的电脑就可以跑.class文件。基本上所有的操作系统都有它支持的java虚拟机,所以JAVA一次编译,处处运行。

⑦ 如何理解Java“一次编译到处运行”的特性

简单地说Java的跨平台性就是指,编译后的Java程序可直接在不同的平台上运行而不用重新编译,这一特性使得Java随着Web应用的普及而迅速普及起来。而Java的跨平台性是如何实现的呢?这就要理解Java虚拟机和字节码的概念。
实际上,编译后的Java代码并不是传统的二进制代码(如Windows下的.exe文件),而是Java字节码,这种字节码文件是不能直接在操作系统上执行的。要想在一个操作系统上运行一个Java程序必须有一个中间环节来负责将Java字节码解释成二进制码,这个中间环节就是Java虚拟机(简称JVM)。由于目前大多数操作系统已经实现了JVM,所以Java轻松实现跨平台性。
这是之前我在黑马程序员培训Java时候,老师讲解的,感觉老师讲的很好,分享给你,你要是学Java,推荐系统学习,去黑马程序员。

⑧ 关于编程语言 一次编译 处处运行问题

java的这个特性也是做了一些牺牲的,在效率方面。这种解释性的语言,第一次编译为字节码,运行的时候,逐条地编译为本地代码执行,效率肯定不及编译型语言。
编译型的语言,虽然没有java的平台无关性,但是运行效率高,有其适用的场合,比如一般的服务器端都是用的c或者c++去处理上百万的客户端请求。
java语言得益于现在硬件的飞速升级,以至于它的效率问题不是那么低明显了。

总之呢,在计算机的世界里,有得必有失,不可能鱼和熊掌兼得(或许有,不过很少)。
要么时间换空间,要么空间换时间,要么就是像java这样,牺牲运行效率达到Written Once, run anywhere!

⑨ 想让c语言的编写的程序运行一次,还可以运行第二次

char a;
while(a!='E')
{
printf("输入大写字母E退出!\n");
scanf("%c",&a)
}
把你程序放在这样的循环体内,就可以实现多次运行,直到输入字符E结束;

⑩ 用C语言编了个程序,怎样才能让它在运行窗口中多次运行呢

#include<stdio.h>
int main()
{
while(1) //设置一个死循环,使程序重复运行
{
system("cls"); //清屏,清除窗口上之前的输出
int a,b;
printf("请输入两个加数:");
scanf("%d%d",&a,&b);
printf("两数之和为%d",a+b);
getch(); //按任意键从头开始
}
}

阅读全文

与如何保证一次编译多次运行相关的资料

热点内容
程序员那么可爱陆离跳水是哪集 浏览:15
如何制作cdn服务器 浏览:109
写java加密程序 浏览:657
菜鸟数据分析pdf 浏览:287
单片机做实用东西 浏览:647
我的世界最强斗罗服务器怎么觉醒武魂 浏览:925
密友圈app怎么切换用户登录 浏览:214
我把程序员当爱豆追 浏览:972
android判断电话接通 浏览:644
大孔文件夹 浏览:783
反诈骗app在哪里下载 浏览:525
军工程序员面试视频 浏览:811
质心算法原理 浏览:421
163smtpphp 浏览:667
java缓存使用 浏览:918
java验证码识别ocr 浏览:877
马云生产服务器 浏览:214
上哪里找app新用户 浏览:542
王陆807词汇pdf 浏览:966
linux命令行开设置窗口 浏览:132