精华内容
下载资源
问答
  • 动态语言和静态语言的区别

    万次阅读 多人点赞 2017-10-30 11:20:20
    编译型语言和解释型语言 1、编译型语言 需通过编译器(compiler)将源代码编译成机器码,之后才能执行语言。一般需经过编译(compile)、链接(linker)这两个步骤。...链接是把各个模块机器码和依赖库串连...

    本文转自:https://www.cnblogs.com/zy1987/p/3784753.html?utm_source=tuicool
     

    编译型语言和解释型语言

    1、编译型语言

    需通过编译器(compiler)将源代码编译成机器码,之后才能执行的语言。一般需经过编译(compile)、链接(linker)这两个步骤

    编译是把源代码编译成机器码,
    链接是把各个模块的机器码和依赖库串连起来生成可执行文件。

    优点:编译器一般会有预编译的过程对代码进行优化。因为编译只做一次,运行时不需要编译,所以编译型语言的程序执行效率高。可以脱离语言环境独立运行。
    缺点:编译之后如果需要修改就需要整个模块重新编译。编译的时候根据对应的运行环境生成机器码,不同的操作系统之间移植就会有问题,需要根据运行的操作系统环境编译不同的可执行文件。
    代表语言:C、C++、Pascal、Object-C以及最近很火的苹果新语言swift

    2、解释型语言

    解释性语言的程序不需要编译,相比编译型语言省了道工序,解释性语言在运行程序的时候才逐行翻译
    优点:有良好的平台兼容性,在任何环境中都可以运行,前提是安装了解释器(虚拟机)。灵活,修改代码的时候直接修改就可以,可以快速部署,不用停机维护。
    缺点每次运行的时候都要解释一遍,性能上不如编译型语言。
    代表语言:JavaScript、Python、Erlang、PHP、Perl、Ruby

    3、混合型语言

    既然编译型和解释型各有缺点就会有人想到把两种类型整合起来,取其精华去其糟粕。就出现了半编译型语言。比如C#,C#在编译的时候不是直接编译成机器码而是中间码,.NET平台提供了中间语言运行库运行中间码,中间语言运行库类似于Java虚拟机。.net在编译成IL代码后,保存在dll中,首次运行时由JIT在编译成机器码缓存在内存中,下次直接执行。Java先生成字节码再在Java虚拟机中解释执行。严格来说混合型语言属于解释型语言。C#更接近编译型语言。

    动态语言和静态语言

    1、动态语言

    是一类在运行时可以改变其结构的语言:例如新的函数、对象、甚至代码可以被引进,已有的函数可以被删除或是其他结构上的变化。通俗点说就是在运行时代码可以根据某些条件改变自身结构
    主要动态语言:Object-C、JavaScript、PHP、Python、Erlang。

    2、静态语言

    与动态语言相对应的,运行时结构不可变的语言就是静态语言。如Java、C、C++、C#。
    PS:C#不是动态语言,但是MS有将.NET支持动态语言的趋势,3.0吸收了一定动态特征,比如 匿名函数,临时类型,临时变量等
     

    有三个名词容易混淆:
    Dynamic Programming Language (动态语言或动态编程语言)
    Dynamically Typed Language (动态类型语言)
    Statically Typed Language (静态类型语言)

    动态类型语言和静态类型语言

    1、动态类型语言

    动态类型语言动态语言完全不同的两个概念。

    动态类型语言:是指在运行期间才去做数据类型检查的语言,说的是数据类型,

    动态语言:说的是运行是改变结构,说的是代码结构。
    动态类型语言的数据类型不是在编译阶段决定的,而是把类型绑定延后到了运行阶段。
    主要语言:Python、Ruby、Erlang、JavaScript、swift、PHP、Perl。

    2、静态类型语言

    静态语言的数据类型是在编译期间(或运行之前)确定的,编写代码的时候要明确确定变量的数据类型。
    主要语言:C、C++、C#、Java、Object-C。

    展开全文
  • 动态语言和静态语言的区别 编译型语言和解释型语言 1、编译型语言 需通过编译器(compiler)将源代码编译成机器,之后才能执行的语言。一般需经过编译(compile)、链接(linker)这两个步骤。 编译是把源代码编译...

    动态语言和静态语言的区别

    编译型语言和解释型语言

    1、编译型语言

    需通过编译器(compiler)将源代码编译成机器码,之后才能执行的语言。一般需经过编译(compile)、链接(linker)这两个步骤。

    编译是把源代码编译成机器码,

    链接是把各个模块的机器码和依赖库串连起来生成可执行文件。

    优点:编译器一般会有预编译的过程对代码进行优化。因为编译只做一次,运行时不需要编译,所以编译型语言的程序执行效率高。可以脱离语言环境独立运行。
    缺点:编译之后如果需要修改就需要整个模块重新编译。编译的时候根据对应的运行环境生成机器码,不同的操作系统之间移植就会有问题,需要根据运行的操作系统环境编译不同的可执行文件。
    代表语言:C、C++、Pascal、Object-C以及最近很火的苹果新语言swift

    2、解释型语言

    解释性语言的程序不需要编译,相比编译型语言省了道工序,解释性语言在运行程序的时候才逐行翻译。
    优点:有良好的平台兼容性,在任何环境中都可以运行,前提是安装了解释器(虚拟机)。灵活,修改代码的时候直接修改就可以,可以快速部署,不用停机维护。
    缺点:每次运行的时候都要解释一遍,性能上不如编译型语言。
    代表语言:JavaScript、Python、Erlang、PHP、Perl、Ruby

    3、混合型语言

    既然编译型和解释型各有缺点就会有人想到把两种类型整合起来,取其精华去其糟粕。就出现了半编译型语言。比如C#,C#在编译的时候不是直接编译成机器码而是中间码,.NET平台提供了中间语言运行库运行中间码,中间语言运行库类似于Java虚拟机。.net在编译成IL代码后,保存在dll中,首次运行时由JIT在编译成机器码缓存在内存中,下次直接执行。Java先生成字节码再在Java虚拟机中解释执行。严格来说混合型语言属于解释型语言。C#更接近编译型语言。

    动态语言和静态语言

    1、动态语言

    是一类在运行时可以改变其结构的语言:例如新的函数、对象、甚至代码可以被引进,已有的函数可以被删除或是其他结构上的变化。通俗点说就是在运行时代码可以根据某些条件改变自身结构。
    主要动态语言:Object-C、C#、JavaScript、PHP、Python、Erlang。

    2、静态语言

    与动态语言相对应的,运行时结构不可变的语言就是静态语言。如Java、C、C++。

    有三个名词容易混淆:
    Dynamic Programming Language (动态语言或动态编程语言)
    Dynamically Typed Language (动态类型语言)
    Statically Typed Language (静态类型语言)

    动态类型语言和静态类型语言
    1、动态类型语言

    动态类型语言和动态语言是完全不同的两个概念。

    动态类型语言:是指在运行期间才去做数据类型检查的语言,说的是数据类型,

    动态语言:说的是运行是改变结构,说的是代码结构。
    动态类型语言的数据类型不是在编译阶段决定的,而是把类型绑定延后到了运行阶段。
    主要语言:Python、Ruby、Erlang、JavaScript、swift、PHP、Perl。

    2、静态类型语言

    静态语言的数据类型是在编译期间(或运行之前)确定的,编写代码的时候要明确确定变量的数据类型。
    主要语言:C、C++、C#、Java、Object-C。

    原文链接:

    https://blog.csdn.net/lvxiangan/article/details/78391281

    展开全文
  • 动态代理是程序运行期间,由JVM通过反射等机制动态生成,所以不存在代理类等字节文件,代理委托关系是运行时确认静态代理是由程序员创建或工具生成代理类源码,再编译代理类,程序运行前就已经存在...

    动态代理是程序运行期间,由JVM通过反射等机制动态生成,所以不存在代理类等字节码文件,代理和委托关系是运行时确认的。

    静态代理是由程序员创建或工具生成的代理类的源码,再编译的代理类,程序运行前就已经存在的代理类文件,代理和委托关系是运行前就确定的。

    展开全文
  • 编译是把源代码编译成机器码,链接是把各个模块机器码和依赖库串连起来生成可执行文件。 优点:编译器一般会有预编译过程对代码进行优化。因为编译只做一次,运行时不需要编译,所以编译型语言程序执行效率高...

    编译型语言和解释型语言

    1、编译型语言

    需通过编译器(compiler)将源代码编译成机器码,之后才能执行的语言。一般需经过编译(compile)、链接(linker)这两个步骤。编译是把源代码编译成机器码,链接是把各个模块的机器码和依赖库串连起来生成可执行文件。

    优点:编译器一般会有预编译的过程对代码进行优化。因为编译只做一次,运行时不需要编译,所以编译型语言的程序执行效率高。可以脱离语言环境独立运行。

    缺点:编译之后如果需要修改就需要整个模块重新编译。编译的时候根据对应的运行环境生成机器码,不同的操作系统之间移植就会有问题,需要根据运行的操作系统环境编译不同的可执行文件。

    代表语言:C、C++、Pascal、Object-C以及最近很火的苹果新语言swift

    2、解释型语言

    解释性语言的程序不需要编译,相比编译型语言省了道工序,解释性语言在运行程序的时候才逐行翻译。

    优点:有良好的平台兼容性,在任何环境中都可以运行,前提是安装了解释器(虚拟机)。灵活,修改代码的时候直接修改就可以,可以快速部署,不用停机维护。

    缺点:每次运行的时候都要解释一遍,性能上不如编译型语言。

    代表语言:JavaScript、Python、Erlang、PHP、Perl、Ruby

    3、混合型语言

    既然编译型和解释型各有缺点就会有人想到把两种类型整合起来,取其精华去其糟粕。就出现了半编译型语言。比如C#,C#在编译的时候不是直接编译成机器码而是中间码,.NET平台提供了中间语言运行库运行中间码,中间语言运行库类似于Java虚拟机。.net在编译成IL代码后,保存在dll中,首次运行时由JIT在编译成机器码缓存在内存中,下次直接执行(博友回复指出)。我个人认为抛开一切的偏见C#是这个星球上最好的编程语言。可惜微软的政策限制了C#的推广。

    Java先生成字节码再在Java虚拟机中解释执行。

    严格来说混合型语言属于解释型语言。C#更接近编译型语言。

    动态语言和静态语言

    1、动态语言

    是一类在运行时可以改变其结构的语言:例如新的函数、对象、甚至代码可以被引进,已有的函数可以被删除或是其他结构上的变化。通俗点说就是在运行时代码可以根据某些条件改变自身结构。

    主要动态语言:Object-C、C#、JavaScript、PHP、Python、Erlang。

    2、静态语言

    与动态语言相对应的,运行时结构不可变的语言就是静态语言。如Java、C、C++。

    3、注意:

    很多人认为解释型语言都是动态语言,这个观点是错的!Java是解释型语言但是不是动态语言,Java不能在运行的时候改变自己结构。反之成立吗?动态语言都是解释型语言。也是错的!Object-C是编译型语言,但是他是动态语言。得益于特有的run time机制(准确说run time不是语法特性是运行时环境,这里不展开)OC代码是可以在运行的时候插入、替换方法的。

    C#也是动态语言,通过C#的反射机制可以动态的插入一段代码执行。所以我说C#是这个星球最好的编程语言。

    动态类型语言和静态类型语言

    1、动态类型语言

    很多网上资料把动态类型语言和动态语言混为一谈,简直是误人子弟。动态类型语言和动态语言是完全不同的两个概念。动态类型语言是指在运行期间才去做数据类型检查的语言,说的是数据类型,动态语言说的是运行是改变结构,说的是代码结构。

    动态类型语言的数据类型不是在编译阶段决定的,而是把类型绑定延后到了运行阶段。

    主要语言:Python、Ruby、Erlang、JavaScript、swift、PHP、Perl。

    2、静态类型语言

    静态语言的数据类型是在编译其间确定的或者说运行之前确定的,编写代码的时候要明确确定变量的数据类型。

    主要语言:C、C++、C#、Java、Object-C。

    3、注意:

    相当一部分程序员,也包括曾经的我,认为解释型语言都是动态类型语言,编译型语言都是静态类型语言。这个也是错的。swift是编译型语言但是它也是动态类型语言。C#和Java是解释型语言也是静态类型语言。

    强类型语言和弱类型语言

    1、强类型语言:

    强类型语言,一旦一个变量被指定了某个数据类型,如果不经过强制类型转换,那么它就永远是这个数据类型。你不能把一个整形变量当成一个字符串来处理。

    主要语言:Java、C#、Python、Object-C、Ruby

    2、弱类型语言:

    数据类型可以被忽略,一个变量可以赋不同数据类型的值。一旦给一个整型变量a赋一个字符串值,那么a就变成字符类型。

    主要语言:JavaScript、PHP、C、C++(C和C++有争议,但是确实可以给一个字符变量赋整形值,可能初衷是强类型,形态上接近弱类型)

    3、注意:

    一个语言是不是强类型语言和是不是动态类型语言也没有必然联系。Python是动态类型语言,是强类型语言。JavaScript是动态类型语言,是弱类型语言。Java是静态类型语言,是强类型语言。

    本文转载自:https://www.cnblogs.com/zy1987/p/3784753.html?utm_source=tuicool

    展开全文
  • 静态解析和动态连接 字节方法调用是以常量池中指向方法符号引用作为参数。这些符号一部分是在类加载阶段或者第一次使用时候就转化为直接引用(例如,私有办法,静态方法,实例构造器,父类方法这4类非...
  • 编译型解释型的区别 先来看看编译型语言的定义: 编译型语言首先是将源代码编译生成机器指令,再由机器运行机器(二进制) 再来看看解释型语言的定义: 解释型语言的源代码不是直接翻译成机器指令,而是先...
  • 静态类型和动态类型的区别编译型语言解释型语言混合型语言静态类型语言动态类型语言 编译型语言 源代码需要通过编译器编译成机器可识别的机器,包括编译链接两个过程。不同操作系统下的可执行文件不一样。代表...
  • 编译型语言解释型语言1、编译型语言需通过编译器(compiler)将源代码编译成机器,之后才能执行语言。一般需经过编译(compile)、链接(linker)这两个步骤。编译是把源代...
  • 静态包含:<%@include file="被包含页面"...如: A.jsp 静态包含 B.jsp,C.jsp ,编译后只生成 A_jsp.class字节。 也就是说,静态包含在转换成为java文件时候将包含文件内容“复制...
  • 编译型解释型的区别 先来看看编译型语言定义: 编译型语言首先是将源代码编译生成机器指令,再由机器运行机器 (二进制)。 再来看看解释型语言的定义: 解释型语言的源代码不是直接翻译成机器指令,而是...
  • 静态就是将需要系统dll打包进PE文件(关于PE文件深刻介绍博主会在后面对其进行介绍)中,编译器会将这些模块,或资源文件数据,全部添加到可执行文件中,存放在可执行文件模块区或资源区,并且做文件地址...
  • 方法库大体上可以分为两类:静态和动态库(共享库)。在windows中静态库是以 .lib 为后缀文件,动态库是以 .dll 为后缀文件。在linux中静态库是以 .a 为后缀文件,共享库是以 .so为后缀文件。 当程序与...
  • 一、 JDKCGLIB动态代理 1、JDK动态代理 利用拦截器(拦截器必须实现InvocationHanlder)加上反射机制生成一个实现代理接口匿名类,在调用具体方法前调用InvokeHandler来处理。 2、CGLIB动态代理 利用ASM开源包,对...
  • Java静态代理和动态代理 1.代理模式 给某一个对象提供一个代理,并由代理...所谓静态也就是在程序运行前就已经存在代理类字节文件,代理类真实主题角色关系在运行前就确定了。 2.1 lol代练解释静态代理 以一个
  • 静态类型和动态类型的区别 静态类型:编译时即知道每一个变量的类型,因此,若存在类型错误编译时无法通过的 动态类型:编译时不知道每一个变量的类型,因此,若存在类型错误会在运行时发生错误, 编译型解释型...
  • 静态和动态的区别 静态:在程序运行前就已经存在代理类的字节文件,代理对象真实对象的关系在运行前就确定了。 动态:是在程序运行期间由JVM通过反射等机制动态的创建出代理对象的字节。代理对象真实对象...
  • nrf52 密码配对之动态密码 工程例程:\examples\ble_central_and_peripheral\experimental\ble_app_... 设置动态密码我之前试的静态密码设置没太大的区别,唯一的区别就是动态密码是一个随机的数 case BLE_GA...
  • 有关计算机语言基本概念辨析一、编译型语言与解释性语言二、动态类型语言与静态类型语言三、强类型语言弱类型语言 一、编译型语言与解释性语言 1、编译型语言(C/C++、Go、Pascal) 解释:在完成源代码后,需通过...
  • 前言 最近在看Java源码解析相关文章,其中有提到静态语言和动态语言,对这些概念有些生涩,被弄云里雾里,在此做...编译是把源代码编译成机器码,链接是把各个模块机器码和依赖库串连起来生成可执行文件。 优...
  • 动态语言和静态语言 动态类型语言和静态类型语言 编译型语言和解释型语言 1、编译型语言 需通过编译器(compiler)将源代码编译成机器,之后才能执行语言。 一般需经过编译(compile)、链接(linker)这两...
  • 相信很多初学前端人都会有这个困惑,在学习之初很多人都会把HTML5前端概念弄混淆了。...所以今天小编就为大家准备了这篇文章,让我们...而前端开发,简单来说,就是把平面效果图转换成网页,把静态转换成动态。它

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 389
精华内容 155
关键字:

动态码和静态码的区别