`
sunqing0316
  • 浏览: 41997 次
  • 性别: Icon_minigender_2
文章分类
社区版块
存档分类
最新评论

邂逅java——编译or解释

 
阅读更多

编译or解释

看java教程,前一页写着“java语言是一种解释执行的语言”,紧跟着后一页就写着“java是半编译半解释型的语言”,当时我就懵了,这到底是几个意思啊?不带这么玩儿的。

那java到底是编译还是解释呢?我觉得要搞清楚这个问题,首先是了解什么是编译和解释,然后再看java程序的运行步骤,然后对照一下自然就清楚了。

计算机不能直接理解高级语言,只能直接理解机器语言,所以必须要把高级语言翻译成机器语言,计算机才能执行高级语言编写的程序。
翻译的方式有两种,一个是编译,一个是解释。两种方式只是翻译的时间不同。

编译(compilation , compile)定义分为静态和动态两种:

1、利用编译程序从源语言编写的源程序产生目标程序的过程。

2、用编译程序产生目标程序的动作。

通俗来讲,编译就是把高级语言变成计算机可以识别的二进制语言,计算机只认识1和0,编译程序把人们熟悉的语言换成二进制的。

编译型语言写的程序在执行之前,需要一个专门的编译过程,把程序编译成为机器语言的文件,比如exe文件,以后要运行的话就不用重新翻译了,直接使用编译的结果就行了(exe文件)。

解释:

解释则不同,解释性语言的程序不需要编译,省了道工序,解释性语言在运行程序的时候才翻译,比如解释性basic语言,专门有一个解释器能够直接执行basic程序,每个语句都是执行的时候才翻译。这样解释性语言每执行一次就要翻译一次,效率比较低。解释是一句一句的翻译。

因为翻译只做了一次,运行时不需要翻译,所以编译型语言的程序执行效率高,但也不能一概而论,部分解释型语言的解释器通过在运行时动态优化代码,甚至能够使解释型语言的性能超过编译型语言。

编译型与解释型,两者各有利弊。前者由于程序执行速度快,同等条件下对系统要求较低,因此像开发操作系统、大型应用程序、数据库系统时都采用它,像C/C++、Pascal/Object Pascal(Delphi)等都是编译语言,而一些网页脚本、服务器脚本及辅助开发接口这样的对速度要求不高、对不同系统平台间的兼容性有一定要求的程序则通常使用解释性语言,如JavaScript、VBScript、Perl、Python、Ruby、MATLAB 等等。

但随着硬件的升级和设计思想的变革,编译型和解释型语言越来越笼统,主要体现在一些新兴的高级语言上,而解释型语言的自身特点也使得编译器厂商愿意花费更多成本来优化解释器,解释型语言性能超过编译型语言也是必然的。

java运行步骤:

.java文件->编译->.class文件,编译成.class字节码,.class需要jvm解释,然后解释执行。Java很特殊,Java程序需要编译但是没有直接编译成机器语言,即二进制语言,而是编译成字节码(.class)再用解释方式执行。java程序编译以后的class属于中间代码,并不是可执行程序exe,不是二进制文件,所以在执行的时候需要一个中介来解释中间代码,这既是java解释器,也就是所谓的java虚拟机(JVM),也叫JDK。

因为java解释器采用生成与系统无关的字节代码指令技术。也就是说,在任何不同的操作系统上,只要正确安装了java运行系统,就有了编写调试java程序的平台,在分布式应用中,java的这个特点使同一个java程序能在不同的系统上运行,从而提高了软件生产效率。可移植性是跨平台特性的一个延伸,即具有了跨平台性,就保证了可移植性。java程序、java类库、java编译器、java系统都具有可移植性。

总结

说了这么多,让我们回头看一下java到底是编译型的还是解释型的。首先,java需要编译,解释型语言不需要编译,然而java编译的结果又不是和其他编译型语言一样的二进制文件,而是class文件。从这一点上来看,java介于二者中间;java编译完成以后,操作系统不能直接运行,而是需要java虚拟机解释执行class字节码文件。因此虚拟机将字节码程序与操作系统及硬件分开,使得java程序能在异构平台上执行,从这一点上来看,java又属于解释型语言。如果严格来说,java确实属于半编译半解释型语言,如果只从最后的执行步骤来看,java属于解释型语言。至于它到底属于什么类型的语言,还是仁者见仁智者见智的。

分享到:
评论

相关推荐

    Java程序设计课件:第一章 初次邂逅Java.ppt

    解释型特性意味着Java代码是半编译半解释执行的。多线程则使得Java能同时处理多个任务,提高了程序的效率。 此外,Java有三个主要的平台版本:J2SE(标准版)、J2EE(企业版)和J2ME(微型版),分别针对桌面应用、...

    天生一对——邂逅情人节ppt模板.rar

    在IT行业中,PPT(PowerPoint)是...通过上述解释,我们可以了解到“天生一对——邂逅情人节ppt模板.rar”不仅是一个情人节主题的PPT模板,还涉及到了文件压缩、模板使用、软件操作以及版权意识等多个IT领域的知识点。

    邂逅统编教科书——借文本解读促小学语文课堂深度 学习研究.pdf

    江凌梅在其研究《邂逅统编教科书——借文本解读促小学语文课堂深度学习研究》中,探讨了如何利用统编教科书,通过文本解读的方式,来促进小学生对语文学科的深度学习。 在文章中,江凌梅提出了几个促进深度学习的...

    语文邂逅电商,聚焦共生共融——“语文 电商”跨界融合的“珍珠饰品图文编排”课例研究.pdf

    语文邂逅电商,聚焦共生共融——“语文 电商”跨界融合的“珍珠饰品图文编排”课例研究.pdf

    Java Web编程宝典-十年典藏版.pdf.part2(共2个)

    Java Web编程宝典-十年典藏版.pdf 是PDF电子书,不是源码。共分2个包。 《Java Web编程宝典(十年典藏版)》是一本集技能、范例、项目和应用为一体的学习手册,书中介绍了应用Java Web进行程序开发的各种技术、技巧。...

    驭见不凡邂逅奢华.pdf

    为了打破这种局面,一场名为“驭见不凡邂逅奢华——XX试驾品鉴会”的活动应运而生,旨在通过一系列精心策划的策略,全方位展示天籁ALTIMA的独特魅力,从而提升其市场知名度和竞争力。 活动的策划与执行着重于强化...

    邂逅半导体的第一位王子——法拉第

    我们生活在电气时代。电渗透到我们日常生活中的方方面面。没有了电,我们的世界是黑暗的,没有了电,我们恐怕已经不知道该怎么生活。众所周知,是英国物理学家迈克尔·法拉第(Michael Faraday,1791-1867)将这伟大...

    学习笔记(一)——邂逅Vuejs

    认识Vuejs 1 为什么学习Vuejs? 前端必备技能,目前非常火,当然最重要的还是提升自己 2.简单认识一下Vuejs Vue是一个渐进式框架,可以将Vue作为应用的一部分嵌入其中,带来更丰富的交互体验 特点:解耦视图和数据,...

    java雨中邂逅

    根据提供的信息,我们可以总结出以下相关的Java编程知识点: ### 一、Java图形用户界面(GUI)编程 #### 1.1 使用Swing构建GUI 在本示例代码中,使用了Swing库来创建一个图形用户界面。Swing是Java中的一个用于...

    美丽的邂逅.doc

    首先,在第一个故事中,我们看到人性中最为闪光的一面——善良与互助。在现代社会的快节奏生活中,每个人都有着自己的忙碌与责任,然而主人公在杭州火车站的一次经历,让我们看到了人性中最为温暖的光芒。当时间紧迫...

    语文邂逅电商,聚焦共生共融——“语文 电商”跨界融合的“珍珠饰品图文编排”课例研究.zip

    在当前信息化社会中,教育与各行各业的交叉融合已经成为一种趋势,"语文邂逅电商"就是一个典型的例子,展示了教育如何与新兴领域相结合,培养更具时代特色的技能。本课例研究主要探讨了语文教学如何与电子商务相互...

    邂逅秋天作文四篇.docx

    ### 邂逅秋天——从文学角度理解秋天的魅力 #### 秋天的多重意象 秋天是一个充满变化的季节,不同的人对秋天的感受也不尽相同。在《邂逅秋天》的几篇作文中,作者通过不同的场景描绘了秋天的多重面貌,包括**树林**...

    邂逅春天花海ppt模板.ppt

    在这充满生机的季节里,我们有幸邂逅一份特别的礼物——《邂逅春天花海PPT模板》。这款模板不仅是展示春天美景的画卷,更是一段关于时间、空间与情感交融的旅程。 随着油菜花海的金黄色铺展,春天正式地在我们眼前...

    WM_01_邂逅webpack1

    Webpack 的工作流程主要包括四个阶段:**解析(Parsing)**、**编译(Compilation)**、**生成(Generation)**和**输出(Output)**。 1. **解析**:Webpack 读取配置文件,遍历模块依赖关系。 2. **编译**:将源...

    电影观ۥ后感——廊桥遗梦精选.doc

    他们的邂逅揭示了看似截然不同的人生背后,两颗渴望共鸣的灵魂。弗朗西斯卡在罗伯特的镜头下,找到了自我,她那被日常琐碎生活压抑的激情被唤醒。这种灵魂的共鸣,使他们在短短四天内,经历了深深的相爱。 爱情在...

    寻找春天——华中农业大学院部简介ppt模板.rar

    春之约会,草长莺飞的三月,正是油菜花盛开的季节,邂逅了油菜花的我,与春天有一场美丽的约会;邂逅春天,三月,在微风暖阳中,悄悄溜走,花谢花开,此事,无关风月。华中农业大学院部简介,校园转角,茶树的形象...

    XX光棍节中山活动 “邂逅摩天轮邂逅爱”活动地点.doc

    活动名称“邂逅摩天轮,邂逅爱”正是巧妙地利用了这一点,将摩天轮赋予了新的意义——一段浪漫邂逅的开始。 活动的报名时间从10月31日持续到11月5日22时,参与者可以通过拨打指定的电话号码进行报名,迅速参与到这...

Global site tag (gtag.js) - Google Analytics