静态语言与动态语言的区别
2016-10-01 15:32
253 查看
静态语言与动态语言的区别
我们先来解释一下三个名词:动态类型语言:在运行期间检查数据的类型的语言。用这类语言编程,不会给变量指定类型,而是在附值时得到数据类型。如:Python和ruby就是典型动 态类型语言。很多脚本语言lua, javascript也是这类语言。看下面javascript代码:
function add(a,b){ return a+b; } add(1,2); add('1',2);
动态语言:指在程序运行过程中可以改变数据类型的结构,对象的函数,变量可以被修改删除。比如:javascript就是这类语言,ruby, python也属于这类语言。而c++,java不属于这类语言。看javascript代码:
function Person(name){ this.name=name; } Person.prototype.getName=function(){ return this.name; } var person=new Person("okok"); alert(person.getName()); person.getName=function(){return "nono"}; alert(person.getName());
静态类型语言:相反静态类型语言是在运行前编译时检查类型。在写代码时,没声明一个变量必须指定类型。如:时下擅长并行编程的go,Java,c#,c,c++等等。
public int add(int a,int b){ return a+b; }
总结
动态类型语言,意思就是类型的检查是在运行时做的,比如如下代码是不是合法的要到运行时才判断。动态语言,就是指程序在运行时可以改变其结构:新的函数可以被引进,已有的函数可以被删除等,动态的对其结构进行改动。一般动态语言都会支持动态类型,常出现于脚本语言中。
动态语言的优势是不需要分心去考虑程序编程问题,而集中精力思考业务逻辑。
而静态类型语言的类型判断是在运行前判断(如编译阶段),比如C#就是一个静态类型语言,静态类型语言为了达到多态会采取一些类型鉴别手段,如继 承、接口,而动态类型语言却不需要。
静态类型语言的主要优点在于其结构非常规范,便于调试,方便类型安全;缺点是为此需要写更多的类型相关代码。静态类型语言因为类型强制声明,所以IDE可以做到很好的代码感知能力,因为有IDE的撑腰,所以开发大型系统,复杂系统比较有保障,且代码在运行前就被编译成机器码,所有运行效率较高。
相关文章推荐
- 编译型与解释型、动态语言与静态语言、强类型语言与弱类型语言的区别
- 静态语言和动态语言的区别
- 动态语言和静态语言的区别
- 弱类型、强类型、动态类型、静态类型语言的区别
- 静态语言和动态语言的区别
- 动态语言和静态语言最本质的区别
- 动态语言与静态语言的区别
- 动态语言和静态语言的区别
- 编译型与解释型、动态语言与静态语言、强类型语言与弱类型语言的区别
- 编译型与解释型、动态语言与静态语言、强类型语言与弱类型语言的区别
- 编译型与解释型、动态语言与静态语言、强类型语言与弱类型语言的区别
- 静态语言和动态语言的区别
- 程序语言动态语言与静态语言区别
- 编译型语言、解释型语言、静态类型语言、动态类型语言概念与区别
- 编译型与解释型、动态语言与静态语言、强类型语言与弱类型语言的区别
- 编译型与解释型、动态语言与静态语言、强类型语言与弱类型语言的区别
- 动态类型语言与静态类型语言的区别
- 编译型与解释型、动态语言与静态语言、强类型语言与弱类型语言的区别
- 动态语言和静态语言最本质的区别是什么?
- 弱类型、强类型、动态类型、静态类型语言的区别是什么?