JAVA概述
第一部分:java入门基础
第二部分:java常用类
第三部分:jdbc系列教程
第四部分:java高级特征
java8新特征详解
java文件操作专题教程

知识点

相关文章

更多

最近更新

更多

编程语言运行机制

2019-03-17 14:30|来源: 网路

计算机高级编程语言,按照程序执行的方式来分的话,主要分为两大类型:编译型语言、解释型语言、编译与解释型结合语言、半编译语言。


编译型:

编译型语言是指使用专门的编译器、针对特定平台(操作系统)将某种高级语言源程序一次性“翻译”成可被该平台硬件运行的机器码(包括指令和操作数),并包装成该平台的操作系统所能识别和运行的格式。这一过程称为“编译”。最后生成的程序(可执行文件)可以脱离开发环境在特定平台上独立执行。我们常见的Windows系统中的可执行文件(以.exe为后缀的文件)都是使用编译型高级程序语言进行编写的。有时编译过程结束之后,还可能需要对其它编译好的目标代码模块进行链接,即组装两个以上的目标代码模块生成最终的可执行文件,以实现较低层次上的代码重用。通过这样的方式,就可以在已有代码的基础上进行软件开发,提高了最终开发程序的效率和稳定性。

优点:编译型高级语言的程序执行时效率较高,因为它被针对特定的平台一次性编译成机器码、且可以脱离开发环境而独立运行。

缺点:编译后生成的目标码文件也就无法再移植到不同的平台上,如要移植则必须修改源程序,或至少针对不同的平台,采用不同的编译器进行重新编译(比如大家都非常熟悉的QQ,就必须针对不同的操作系统,开发不同的客户端版本)

代表:FORTRANCC++、PascalLISP等都是编译型的



解释型:

解释型语言是指使用专门的解释器,将某种高级语言源程序逐条指令的解释成特定平台的机器码指令,并立即执行,解释一句执行一句,这类似于会场中的“同声翻译”,而不进行整体性的编译和链接处理。

优点: 针对不同平台提供相应的解释器,就能方便的实现源程序级的移植,跨平台。

缺点:解释型语言相当于把编译型语言相对独立的编译和执行过程混合到一起,而且每一次执行时都要重复进行“解释”,因而执行的效率较低。且不能脱离解释器独自执行

代表:phprubyPython



编译解释型:

代表:java

Java的源代码在编写好之后,先采用通用的Java编译器对源代码进行编译,但是编译的结果并不是针对某一种具体的操作系统平台,比如C语言针对Windows平台编译好的exe可执行文件,而是一种叫做字节码的文件。字节码的文件内容相对于高级程序语言的源代码来说,更接近计算机机器语言,但是它并不是真正的编译好的机器语言,而仍然是与平台无关的,编译的结果针对的是一种称之为Java虚拟机(JVM-Java Virtual Machine)的虚拟计算机技术。

JVM按照统一的标准来读取分析字节码文件,然后就像是解释型语言的解释器一样,将字节码指令翻译为具体的某操作系统平台的机器指令,然后去执行指令。


虽然JVM也是解释执行的,当相比于解释型语言,它不是直接解释执行源代码,而是经过处理后的字节码文件,将字节码文件解释为该JVM针对的特定平台的机器指令。这样解释执行的效率要远高于其他解释型语言(比如最常见的web开发,Jsp的运行效率是php10倍以上)。并且JVM解释字节码的标准都是一样的,这样Java源代码就不需要针对不同的JVM(或者操作系统平台)重新进行编译或者改写,实现了像解释型语言那样,非常容易的实现了跨平台运行。

通过这种结合型的运行机制,Java既实现了跨平台运行,同时还是高效的跨平台运行。



半编译型:VB


整理于网络

相关问答

更多
  • 一、创新建立志愿者队伍招募机制。只有招募到有各种专长的志愿者才能为社区居民提供多样化、便利化、个性化的服务。如武汉百步亭社区一是发挥居民党小组长以及各个楼长的作用,深入到各个家庭户当中进行动员。由于这些居民小组长熟悉每家每户的情况,自身拥有良好的社会资本与社会网络,所以由他们动员、推动社区居民参与志愿服务的效率比较高。二是百步亭社区发挥各个驻地单位、企业的作用,把这些驻地单位领导当成社区志愿工作网络中的一部分,广泛动员本单位的志愿者。 二、建立健全社区志愿者队伍登记注册制度,为志愿者队伍提供合法性身份认同。 ...
  • 运行java.exe的时候是如何load jvm的呢,看过王森一书,但是没有说的很具体,我测试了一下,总结如下, Windows下: 当运行java.exe的时候,java首先寻找java.dll文件 1,如果找到就去找../lib/i386/(相对目录)里的jvm.cfg文件(这个文件里是启动哪个jvmd的相对应的参数),根据java.exe的参 ... by mikeyi 2004-04-14 启动eclipse后自 项目组的cvs服务器上要装个eclipse,先装了jdk-1_5_ ...
  • aop就是切面编程,通俗的说,java是面向对象,会有很多很多类,然而这些类会有一向相同的行为,对这一类相同的行为做操作,就是aop了
  • 建议您看看这个人的博客: http://www.nowamagic.net/librarys/veda/detail/1923 里面详细介绍了原理。
  • 1、php是运行在相关的服务之上的。比方apache,apache会将php代码编译成计算机能识别的代码 2、PHP本身是一套编译规则!客户端通过浏览器发送请求到服务器,服务器根据接受到的请求编译了请求需要的php脚本,做出解释后返回一个response给浏览器 3、浏览器接受到response,根据header做出解释,或者输出文件或者输出html代码等 4、输出到客户端屏幕上
  • 1. 使用Python自带的IDLE 在开始-->程序-->Python2.5(视你安装的版本而不同)中找到IDLE(Python GUI), 点击后弹出如下窗体: 在>>>提示符后输入代码,回车,就可以执行此代码。 IDLE支持语法高亮,支持自动缩进,支持方法提示,不过提示的很慢。 2. 在命令行窗口上运行 这种方法的前提是:你在系统的PATH变量中配置了Python的安装路径。 右键我的电脑-->属性-->高级-->环境变量,在系统变量列表中找到Path项,点击编辑按钮,在其中追加“C:\Python2 ...
  • HashSet的内部实现是hashMap hashmap在put的时候会检测key的hash是否存在,key的hash值的计算方式是当前对象的hashcode的hashcode 存入以后进行hash排序
  • map分类,reduce整合,通过相同的key将需要的信心通过map整合到同一个reduce中,在reduce中实现算法
  • TOMCAT的生存期的定义,包括加载和实例化、初始化、处理请求以及服务结束。这个生存期由javax.servlet.Servlet接口的init,service和destroy方法表达。