编译型和解释型的区别&&Java从编译到执行的过程

借鉴:

1  http://www.cnblogs.com/bluestorm/archive/2012/12/09/2810167.html           区别

2  http://blog.jobbole.com/53152/       编译的过程

3  http://jingyan.baidu.com/article/b24f6c82de6bcf86bfe5dad4.html          Java从编译到执行的过程(完整)

Java编译-下载-解释-执行的过程:

在Java编程中,source code 就是源代码。就是我们根据Java 语言规范所编写的源程序文件,扩展名为java。

byte code 叫字节码,是扩展名为java的源程序文件经过Java编译器后所生成的类文件,它的扩展名为class。

字节码文件不是二进制文件;字节码文件通过Java解释器在Java虚拟机中解释执行

Java程序大致的运行过程:  Java中引入了虚拟机的概念,即在机器和编译程序之间加入了一层抽象的虚拟的机器。这台虚拟的机器在任何平台上都 提供给编译程序一个的共同的接口。编译程序只需要面向虚拟机,生成虚拟机能够理解的代码,然后由解释器来将虚拟机代码转换为特定系统的机器码执行。在 Java中,这种供虚拟机理解的代码叫做字节码(ByteCode),它不面向任何特定的处理器,只面向虚拟机。每一种平台的解释器是不同的,但是实现的 虚拟机是相同的。Java源程序经过编译器编译后变成字节码,字节码由虚拟机解释执行,虚拟机将每一条要执行的字节码送给解释器,解释器将其翻译成特定机器上的机器码,然后在特定的机器上运行。

主要几个问题:

1、java编译生成的字节码,在所有操作系统都是一样,故其有这样的特点:write once, run anywhere.其意思:只需要一次编码,就可以在任何环境下运行。2、不同的操作系统,其java 虚拟机是不一样的。虚拟机将java字节代码转换对应操作系统的相关指令,保证其正常运行。3、java 系统支持所有的硬件的平台,不存在你提及的问题,你可以放心使用。4、解释器在java虚拟机中,编译器在JDK或JRE 中。5、java虚拟机就是常说的java 运行环境,其缩写是 JRE,安装在操作系统下的一个目录中,这个目录在安装时可以由你自行指定,就像你安装其它应用软件一样。JDK中包含了JRE,还有开发环境,如编译器,帮助文档生成器,以及系统API的jar库文件等。
时间: 2024-10-23 21:17:27

编译型和解释型的区别&&Java从编译到执行的过程的相关文章

编译型和解析型区别

先看看编译型,其实它和汇编语言是一样的:也是有一个负责翻译的程序来对我们的源代码进行转换,生成相对应的可执行代码.这个过程说得 专业一点,就称为编译(Compile),而负责编译的程序自然就称为编译器(Compiler).如果我们写的程序代码都包含在一个源文件中,那么通常 编译之后就会直接生成一个可执行文件,我们就可以直接运行了.但对于一个比较复杂的项目,为了方便管理,我们通常把代码分散在各个源文件中,作为不同的模 块来组织.这时编译各个文件时就会生成目标文件(Object   file)而不是

程序的编译与解释之间的区别

个人觉得:取决于你怎么解读这个问题. 传统意义对比: 传统意义上的所谓编译与解释,区别在于代码是在什么时候被翻译成目标CPU的指令.——虽然这种解释从科学上说不通,但这却是一直以来大家更认可的更约定俗成的定义. 对 C 语言或者其他编译型语言来说,编译生成了目标文件,而这个目标文件是针对特定的 CPU 体系的,为 ARM 生成的目标文件,不能被用于 MIPS 的 CPU.这段代码在编译过程中就已经被翻译成了目标 CPU 指令,所以,如果这个程序需要在另外一种 CPU 上面运行,这个代码就必须重新

C语言中字符型和字符串型的区别?

C语言中只有字符型类型,没有字符串型类型.字符类型用一个带符号的8位二进制编码表示,其性质与int相同,只是只有一个字节.表示字符的ASCII编码使用其中的0~127,所以要明白字符类型(char)其实是一个一字节整型,并不只用来表示字符.由于C中没有字符串类型,所以在处理字符串时是利用字符型数组来实现的,在字符型数组中一个接一个地存储字符的ASCII编码,并在最后一个字符后加一个'\0'表示这一串字符结束了,就形成所谓“字符串”.

编译型与解释型、动态语言与静态语言、强类型语言与弱类型语言的区别

一.编译型和解释型 我们先看看编译型,其实它和汇编语言是一样的:也是有一个负责翻译的程序来对我们的源代码进行转换,生成相对应的可执行代码.这个过程说得专业一点,就称为编译(Compile),而负责编译的程序自然就称为编译器(Compiler).如果我们写的程序代码都包含在一个源文件中,那么通常编译之后就会直接生成一个可执行文件,我们就可以直接运行了.但对于一个比较复杂的项目,为了方便管理,我们通常把代码分散在各个源文件中,作为不同的模块来组织.这时编译各个文件时就会生成目标文件(Object  

10 高级语言-解释型

解释类:执行方式类似于我们日常生活中的“同声翻译”,应用程序源代码一边由相应语言的解释器“翻译”成目标代码(机器语言),一边执行,因此效率比较低,而且不能生成可独立执行的可执行文件,应用程序不能脱离其解释器(想运行,必须先装上解释器,就像跟老外说话,必须有翻译在场),但这种方式比较灵活,可以动态地调整.修改应用程序.如Python.Java.PHP.Ruby等语言. 解释型: 解释型:1.把源代码编译成机器语言的可执行程序 1.用户调用解释器,执行源代码文件.2.执行 可执行程序文件 2.解释器

编译和解释原理

语言发展 计算机的硬件只能识别0和1组成的机器指令,而机器指令是最基本的计算机语言,但是我们平时进行程序设计时肯定不会用机器语言来编程,因为用它的效率低,更让人难以理解.因此聪明的人类发明了汇编语言,它使用符号来表示指令,例如用ADD表示加法,这就容易理解了.但是汇编语言和机器语言十分接近,其书写取决于机器指令,因此它还是一种面向机器的语言,所以称它为低级语言.相应的,又在此基础上,开发出了功能更强.抽象更高的面向各类应用的程序语言,称为高级语言.例如VB,C++,C#,Java等,大家都挺熟悉

java反编译工具Bytecode-Viewer

java反编译工具Bytecode-Viewer 在java的开发学习中,可能需要想了解class文件对应的代码内容是什么,如果我们使用IDE工具,可以通过IDE工具的各种反编译插件去进行反编译,但是java的IDE工具还是比较笨重的,启动耗时并且占用内存,这时我们就需要一些简单的反编译小工具去处理. java反编译工具有很多,这里介绍的是Bytecode-Viewer,官网地址bytecodeviewer.com 反编译 通过view菜单可以选择显示面板以及对应的反编译引擎. 原文地址:htt

解释器和编译器,编译型原理和解释型原理

解释器: 解释器(英语:Interpreter),又译为直译器,是一种电脑程序,能够把高级编程语言一行一行直接转译运行.解释器不会一次把整个程序转译出来,只像一位“中间人”,每次运行程序时都要先转成另一种语言再作运行,因此解释器的程序运行速度比较缓慢.它每转译一行程序叙述就立刻运行,然后再转译下一行,再运行,如此不停地进行下去. 解释器运行程序的方法有: 1.直接运行高级编程语言 (如 Shell 自带的解释器) 2.转换高级编程语言码到一些有效率的字节码 (Bytecode),并运行这些字节码

编译与解释(java)

计算机不能直接理解高级语言,只能直接理解机器语言,所以必须要把高级语言翻译成机器语言,计算机才能执行高级语言编写的程序. 翻译的方式有两种,一个是编译,一个是解释.两种方式只是翻译的时间不同 计算机不能直接理解高级语言,只能直接理解机器语言,所以必须要把高级语言翻译成机器语言,计算机才能执行高级语言编写的程序. 翻译的方式有两种,一个是编译,一个是解释.两种方式只是翻译的时间不同. 编译(compilation , compile)定义分为静态和动态两种: 1.利用编译程序从源语言编写的源程序产