展开

关键词

Java 属于还是属于解释

文章目录 前 一、Java 与 Java 字节码 二、什么是译器(Compiler) 三、什么是解释器(Interpreter) 总结 ---- 前 我们都知道开发整体分为两类,一类是 ,一类是解释。 关于更多 Java 源译、执行原理的内容可以移步我的另有一篇帖子 Java 版本、规范、API、JDK、IDE、Java 源译、执行原理(跨平台性根本原因)、特殊字符用法、8 大数据类小结 译器把源序的每一条句都译成机器,并保存为二进制文件,运行时计算机可以直接通过运行来运行此序,速度会很快。 ---- 总结 所以说,Java 既不属于也不属于解释,因为它由 Java 译器译为字节码文件,然后仍需要有 JVM 将字节码解释翻译为目标机器,先译后解释。

48731

AI

比如C、C++这些只有经过译工具的处理后才能被CPU芯片所识别。 举个例子说明这个过。 对于那些的集成开发软件而,它们为了提高开发效率把译过封装成了控件操作,在译原理上仍然是相同的。 Python这类解释则有所不同。 序员可以不依赖于特定号的计算机,使用接近于自然、数学公式这些更容易理解的方式序,并且写的序能移植到各种平台上正常运行。 面向过的典代表有C、 Fortran、COBOL、Pascal、Ada等等,面向对象的典代表有Java、C++、C#、Python等。 简单的说,面向过和面向对象是两种的思想。 幸好Python本身由C实现的,在设计之初考虑到了通过足够抽象的机制让C/C++之类的能够导入到Python脚本序中。

1.3K32
  • 广告
    关闭

    90+款云产品免费体验

    提供包括云服务器,云数据库在内的90+款云计算产品。打造一站式的云产品试用服务,助力开发者和企业零门槛上云。

  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    6.计算机的发展 发展 为什么会有 什么作用 机器 高级分类 历史 有哪些 年史

    计算机指用于人与计算机之间通讯的,也即是平时说的 指令的概念很早就形成了,其实指令本身就是一种 一个指令替代了一组逻辑电路或者机电式/机械式中的一个计算单元 你只需要一个指令就相当于已经操作了一整个的模块 ,完全就等同于乱码 难读、难、难记和易出错 你根本不会知道到底是什么意思 随后,开始用与代码指令实际含义相近的英文缩写词、字母和数字等符号来替代描述指令代码 出现了汇,汇只是机器的助记符 不同的机器有不同的汇 需要汇序翻译成计算机可以识别的二进制机器 本质还是面向机器的低级 机器和汇都是面向硬件的具体操作的,对机器过分依赖,所以称之为低级 高级 ,需要翻译序转换为机器可以执行的目标代码序 虽然高级不涉及寄存器这些东西,不需要你了解硬件 但是这是高级隐藏了她们,而不是说这些东西不存在不重要,所有的都逃不过这一关 始终是要机器的 ) 1957 – FORTRAN (第一个) 1957 – COMTRAN (COBOL的祖先) 1958 – LISP 1958 – ALGOL 58 1959 – FACT (COBOL

    44420

    内存模

    内存模回答了并行序可以依靠什么行为以便它们的线之间可以共享内存的问题。 这是硬件内存模的DRF-SC属性,在环境中采用。 内存模规定了序员和译器所需的额外细节,作为他们之间的约定。上面谈到的通用特征基本上适用于所有现代,但直到最近,事情才收敛到一点:在21世纪初,有明显更多的变种。 内存模精确回答这些问题,即哪些优化是允许的,哪些是不允许的。通过研究过去几十年来尝试写这些模的历史,我们可以了解哪些可行,哪些不可行,并了解事情的发展方向。 原始的Java内存模 (1996) Java是第一个试写下多线序保证的主流。它包括互斥体(mutex),并定义了它们隐含的内存排序要求。

    12030

    解释

    计算机不能直接理解的高级,只能直接理解机器,所以必须把高级防疫成机器,计算机才能执行高级写的序,翻译的方式两种: 特征 1、解释: 解释序不要译,在运行序时进行翻译 2、就是译的时候直接译成机器可执行的(.exe.dll.ocx)译和执行是分开的,但是不能跨平台,比如exe文件,以后要运行就不需要重新译了,只做一次翻译,所以序效率高 区别 1、解释: (1)序运行的控制权在解释器(jre,.net),而不在于序 (2)一些网页脚本,服务器脚本以及辅助开发接口这样的对速度要求不高,但是对系统的兼容性有一定要求的序通常使用解释 2、: (1)序运行的控制权在用户序 (2)译好的由于执行速度快,同等条件下对系统的要求比较低,因此开发操作系统、大小应用序、数据库系统等使用,如:c、c++、object-c 其封装底层代码,序严重依赖平台,占用了大量系统资源(解释器和用户序) 2、: 优点:运行速度快,代码效率高,译后序不可修改(oc动态运行时方案排除),保密性好。

    34030

    函数式与面向对象: 静态类的表达力 静态类与动态类函数式与面向对象: 静态类的表达力 静态类与动态类

    函数式与面向对象[2]: 静态类的表达力 静态类与动态类 之剑 2016.5.3 21:43:20 ---- 像Java或者C#这样强类的准静态在实现复杂的业务逻辑、开发大商业系统 有三个名词容易混淆: Dynamic Programming Language (动态或动态) Dynamically Typed Language (动态类) Statically 例如C/C++/Java/C# 弱类(动态类) 是指不需要进行变量/对象类声明的,一般情况下不需要译(但也有的)。 另外一个答案是,动态类解除了序员的束缚,可以最大的 发挥序员的技能,能最有效的利用里的各种特征和模式。 其实我个人认为: 动态类,特别是高级动态类,反而能够让人们不需要分心去考虑问题,而集中精力思考业务逻辑实现,即思考过即实现过,用DSL描述问题的过就是的过,这方面像Unix

    26310

    文大话

    james-irys-history-of-programming-languages-illustrated-with-pictures-and-large-fonts/ 所谓大话就是恶搞,本文中的关于各种的描述 作者在描述史实时加入了很多个人情感和社会流行元素,配基本是靠谱的。这也许就是寓教于乐吧。 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 以上片上的文字内容来自这篇文章。

    22710

    C+SDL2 形化

    设大作业小火车第一版本是命令行界面,第二版本是形化界面,由于egg库对以后工开发没有用,我不想用egg库,花了很长时间浏览了一下OpenGL的中文教,觉得好复杂,需要看很多很多才能写出个简单的形化 新建工 选择win32 project ? 选择empty project ? 修改工设置 ? 如设置 ? 选择c盘SDL目录的include文件夹 ? 同样地设置Liabrary Dictories,选择SDL文件夹的lib文件夹的x86(因为我们的工是win32工)。 ? 为了译SDL代码,还要在配置一下对库的链接 ? ? 我们的系统运行SDL 2的应用序时,要能够找到dll文件,我们从C盘的SDL的lib的x86中复制SDL2.dll,放在我们工的vcxproj文件所在的位置。

    66110

    (机器、汇、高级

    机器   直接对硬件操作的,由多个0、1构成的。是低级底层。 汇   汇同机器一样直接对硬件操作。   汇虽麻烦,但是所能完成的操作不是一般高级能够实现的。 且生成的可执行文件小,执行速度快 高级   高级制的序不能直接被计算机识别,必须经过转换才能执行。    序执行效率高、依赖译器、跨平台性差 解释类(Python、Java、PHP、Ruby等)   序源码边译边执行,逐行译,不能生成可独立执行的文件。   但是这种方式可以灵活调整更改。 总结:   机器   优点是最底层,速度最快,缺点是最复杂,开发效率最低   汇   优点是比较底层,速度最快,缺点是复杂,开发效率最低   高级   执行速度快,不依赖环境运行 ,跨平台差   解释跨平台好,一份代码,到处使用,缺点是执行速度慢,依赖解释器运行

    94910

    Java 答疑:译器和解释器有何区别?Java 属于还是解释

    总结 前 我们都知道开发整体分为两类,一类是,一类是解释。那么你知道二者有何区别吗?译器和解释器又各自有何区分? Java 属于还是解释呢? 解释的过就是一次将字节码中单独的一步翻译为目标机器代码,翻译后立即执行这一步,具体如下所示: 四、译器与解释器有何区别? 既不属于也不属于解释,因为它由 Java 译器译为字节码文件,然后仍需要有 JVM 将字节码解释翻译为目标机器,先译后解释。 总结 在本文中我们解释了什么是译器,什么是解释器,并对二者进行了比较,从原理层面指出 Java 既不属于也不属于解释

    5530

    、解释、静态类、动态类、强类、弱类概念与区别

    因为译只做一次,运行时不需要译,所以序执行效率高。可以脱离环境独立运行。 缺点:译之后如果需要修改就需要整个模块重新译。 代表:C、C++、Pascal、Object-C以及最近很火的苹果新Swift 2、解释 解释性序不需要译,相比省了道工序,解释性在运行序的时候才逐行翻译。 net在译成IL代码后,保存在dll中,首次运行时由JIT在译成机器码缓存在内存中,下次直接执行(博友回复指出)。我个人认为抛开一切的偏见C#是这个星球上最好的。 C#也是动态,通过C#的反射机制可以动态的插入一段代码执行。所以我说C#是这个星球最好的。 3、注意: 相当一部分序员,也包括曾经的我,认为解释都是动态类都是静态类。这个也是错的。 swift是但是它也是动态类

    1.1K110

    和解释的区别

    我们写的源代码是人类,我们自己能够轻松理解;但是对于计算机硬件(CPU),源代码就是天书,根本无法执行,计算机只能识别某些特定的二进制指令,在序真正运行之前必须将源代码转换成二进制指令。 不同的有不同的规定: 有的要求必须提前将所有源代码一次性转换成二进制指令,也就是生成一个可执行序(Windows 下的 .exe),比如C、C++、Golang、Pascal(Delphi )、汇等,这种称为,使用的转换工具称为译器。 有的可以一边执行一边转换,需要哪些源代码就转换哪些源代码,不会生成可执行序,比如 Python、JavaScript、PHP、Shell、MATLAB 等,这种称为解释,使用的转换工具称为解释器 但是,翻译源代码是一个复杂的过,大致包括词法分析、法分析、义分析、性能优化、生成可执行文件等五个步骤,期间涉及到复杂的算法和硬件架构。

    28820

    什么是解释?

    序执行之前,先会通过译器对序执行一个译的过,把序转变成机器。运行时就不需要翻译,而直接执行就可以了。最典的例子就是 C 。 解释就没有这个译的过,而是在序运行的时候,通过解释器对序逐行作出解释,然后直接运行,最典的例子是 Ruby。 通过以上的例子,我们可以来总结一下解释的优缺点,因为序运行之前就已经对序做出了“翻译”,所以在运行时就少掉了“翻译”的过,所以效率比较高。 但是我们也不能一概而论,一些解释也可以通过解释器的优化来在对序做出翻译时对整个序做出优化,从而在效率上超过。 此外,随着 Java 等基于虚拟机的的兴起,我们又不能把纯粹地分成解释这两种。

    11520

    基础】C转换

    我们在序的时候,经常会出现不同类的数据之间需要计算、赋值,必然会出现类转换问题。C的变量数据类是可以转换的,转换的方法有两类,一种是自动转换,一种是强制转换。 自动转换 这种转换发生在不同数据类的量混合运算或赋值时,由译系统自动完成。自动转换遵循以下规则: 1,若参与运算量的类不同,则先转换成同一类,然后进行运算。 如int和long运算时,先把int量转成long后再进行运算。 3,所有的浮点运算都是以双精度进行的,即使仅含float单精度量运算的表达式,也要先转换成double,再作运算。 4,char和short参与运算时,必须先转换成int。 5,在赋值运算中,赋值号两边量的数据类不同时,赋值号右边量的类将转换为左边量的类。 强制类转换 强制类转换是通过类转换运算来实现的,形式为在要转换的数值或者表达式前用小括号将要类括起来。

    746130

    Golang 技巧之类

    01 介绍 Golang 是一门静态类,我们在写代码时,为了提升代码的灵活性,有时会使用空接口类,对于空接口类的变量,一般会通过类判断变量的类,而且可能还会遇到需要类转换的场景 本文我们就来介绍一下类、类转换和类选择。 02 技巧 类提供了访问接口类值的底层具体值的方式,这里需要注意的是被类的值必须是接口类的值。 字符串类和切片(字节切片和字符切片)类互相转换: func main () { var a string a = "" b := []byte(a) fmt.Println 它是一种按照顺序从几个类中选择分支的结构,类选择与 switch 句类似,但是类选择中的 case 不是值,而是值的类。 03 总结 本文我们介绍了 Golang 相关的技巧,通过使用类、类转换和类选择,可以使我们的代码更加灵活。

    17320

    plsql

    –pl/sql –pl/sql是对sql的扩展,是的sql具有过的特性 –pl/sql比一般的过,更加灵活高效 –pl/sql主要用来写存储过和存储函数等 --声明方法,定义变量 --赋值操作可以用 := 也可以使用 into 查询句赋值 declare i number(2):=10; --数值变量 s varchar2 --存储过 --存储过:存储过就是提前译好的一段pl/sql,放置在数据库端 ---可以直接被调用。 凡是涉及到into查询句复制或者 := 复制操作的参数,都必须用out来修饰。 –存储过和存储函数的区别 –法区别:关键字不一样 ----存储函数比存储过多了两个return。 —如果存储过实现有返回值的业务,我们就必须使用out类的参数 —即便是存储过使用了out类的参数,其本质也不是真的有了返回值 —而是在存储过内部给out类的参数赋值,在执行完毕后,我们直接拿到输出类参数的值

    31440

    Python

    Python 是一种高级、通用且非常流行的。Python (最新的 Python 3)被用于 Web 开发、机器学习应用序以及软件行业的所有尖端技术。 Python 非常适合初学者,也适合使用 C++ 和 Java 等其他的有经验的序员。 这个特别设计的 Python 教将帮助您以最有效的方式学习 Python ,主题从基础到高级(如 Web-scraping、Django、Deep-Learning 等)并附有示例。 以下是有关 Python 的一些事实: 1.Python 是目前使用最广泛的多用途高级。 2.Python 允许在面向对象和过范式中进行。 3.Python 序通常比 Java 等其他小。序员必须键入相对较少的和缩进要求,使其始终可读。

    7330

    与解释有何区别?

    源代码,源代码就是由序员使用各种写的还未经译或者解释的序文本,译或解释能把源代码翻译成等效的二进制代码,也就是CPU能够识别的机器译和解释 译和解释都是对源代码的解释处理方式,而由于他们的操作方法不同,所以会有不同的运行的效果: 译是把源代码的每一条句都译成机器,并最终生成二进制文件,这样运行时计算机可以直接以机器来运行此序 ,你阅读时就会很快、很轻松; 随身翻译:就是翻译小姐姐随时守在你身边,你想阅读那一句,他就给你翻译那一句,这这种方式翻译时很快,但对你来说,阅读就会花费较长的时间; 与解释 : 使用译器来译执行的,这类往往会花费较长的译时间,但译完成后,会有很好的运行性能;因此,这类写的序每次修改都要再次经历一遍完整译过后,修改效果才能生效,迭代时间会比解释要长 代表:C、C++ 解释:使用解释器来解释执行的,这类不需要译,序执行到了,解释器才会去解释对应的句,这类更多的时间花费在了运行期间;但是这类写的序的修改迭代不要经历漫长的译过

    30410

    C+——自制象棋

    用C做个象棋是不容易的,涉及到的知识点有很多方面,C里面的基本数据类、运算符、顺序,分支,循环结构。还有运用到数组,函数,指针,以及我们的位运算等。 做出来的象棋序,自然的话代码也不少的,下面的话我就发一部分吧,把棋盘的话,棋子的代码写出来,自然的话,各位都需要自己找好素材,以及我们的译器要用到形库的,记得安装好。 下面我就把棋盘的代码发出来在下面 小给大家推荐一个学习氛围超好的地方,C/C++交流企鹅裙:870963251!适合在校大学生,小白,想转行,想通过这个找工作的加入。 "仕")==0) { putimage(x,y,&t[12]); } if(strcmp(q,"帥")==0) { putimage(x,y,&t[13]); } } void qipan() { C学习群 :462127424 点击链接加入群聊【C】:C //初始化 int gdriver, gmode; int x,y; int fillstyle; gdriver=DETECT; initgraph

    1.5K30

    :如果是飞机

    如果是飞机 ? 汉化:Ray@序员的那些事

    34390

    相关产品

    • 图数据库 KonisGraph

      图数据库 KonisGraph

      图数据库KonisGraph(TencentDB for KonisGraph)是基于腾讯在社交网络、支付、游戏和音乐等业务场景超大规模图数据管理的经验积累,为您提供的一站式高性能海量图数据存储、管理、实时查询、计算和可视化分析的数据库服务。支持属性图模型和TinkerPop Gremlin查询语言,帮助用户快速完成对图数据的建模、查询和分析;支持百亿级节点、万亿级边的超大规模图数据中关联关系的查询分析。广泛适用于社交网络、金融支付、安全风控、知识图谱、广告推荐和设备拓扑网络等具有海量关系数据的场景。

    相关资讯

    热门标签

    扫码关注云+社区

    领取腾讯云代金券