正确区分那些容易混淆的相关概念
2013-05-01 18:56
309 查看
本文记录了一些在程序开发中常见容易混淆的相关概念,对比分析了不同特点。想成为一名合格的搬砖工,牢记吧!!
动态类型语言与静态类型语言
动态类型语言简称动态语言,静态类型语言简称静态语言,这两中语言在本质上有着很大的不同。
所谓的动态语言,是指程序在运行时可以改变其结构,新的函数可以被引进,已有的函数可以被删除。也就是说在用动态类型的语言编程时,永远也不用给任何变量指定数据类型,该语言会在你第一次赋值给变量时,在内部将数据类型记录下来。这种类型的优点是类型定义灵活,方便阅读,缺点是不方便调试。常见的动态语言有:JavaScript、Ruby、Python、VBScript、PHP、Groovy(Java平台)等。
所谓的静态语言,是指程序在运行前就已经完成了类型检查(如编译阶段),无法在运行时改变结构。也就是说在用静态类型的语言编程时,声明一个变量时必须给它指定数据类型。优点是结构规范,便于调试,方便类型安全,缺点是需要写很多类型的相关代码,不便于阅读。常见的静态语言有:C、C++、Java、C#等。
脚本语言都是动态语言,而动态语言都是解释型语言,不管它们是不是面向对象。
强类型定义语言和弱类型定义语言
强类型定义语言是一种强制数据类型定义的语言。也就是说,一旦一个变量被指定了某个数据类型,如果不经过强制转换,那么它就永远是这个数据类型了。例如,给某个变量定义为整型,那么这儿变量不能当做字符串类型来进行处理。常见的强类型定义语言有:java、.NET、C++等。
弱类型定义语言正好相反,是一种数据类型可以忽略的语言。也就是说,一个变量可以被多次赋予不同类型的值。常见的所类型定义语言有:PHP、JavaScript等。
强类型定义语言在速度上可能略逊色于弱类型定义语言,但是强类型定义语言带来的严谨性能够有效的避免许多错误。
另外,“这门语言是不是动态语言”与“这门语言是否类型安全”之间是完全没有联系的!例如:Python是动态语言,是强类型定义语言(类型安全的语言); VBScript是动态语言,是弱类型定义语言(类型不安全的语言)。
动态类型语言与静态类型语言
动态类型语言简称动态语言,静态类型语言简称静态语言,这两中语言在本质上有着很大的不同。
所谓的动态语言,是指程序在运行时可以改变其结构,新的函数可以被引进,已有的函数可以被删除。也就是说在用动态类型的语言编程时,永远也不用给任何变量指定数据类型,该语言会在你第一次赋值给变量时,在内部将数据类型记录下来。这种类型的优点是类型定义灵活,方便阅读,缺点是不方便调试。常见的动态语言有:JavaScript、Ruby、Python、VBScript、PHP、Groovy(Java平台)等。
所谓的静态语言,是指程序在运行前就已经完成了类型检查(如编译阶段),无法在运行时改变结构。也就是说在用静态类型的语言编程时,声明一个变量时必须给它指定数据类型。优点是结构规范,便于调试,方便类型安全,缺点是需要写很多类型的相关代码,不便于阅读。常见的静态语言有:C、C++、Java、C#等。
脚本语言都是动态语言,而动态语言都是解释型语言,不管它们是不是面向对象。
强类型定义语言和弱类型定义语言
强类型定义语言是一种强制数据类型定义的语言。也就是说,一旦一个变量被指定了某个数据类型,如果不经过强制转换,那么它就永远是这个数据类型了。例如,给某个变量定义为整型,那么这儿变量不能当做字符串类型来进行处理。常见的强类型定义语言有:java、.NET、C++等。
弱类型定义语言正好相反,是一种数据类型可以忽略的语言。也就是说,一个变量可以被多次赋予不同类型的值。常见的所类型定义语言有:PHP、JavaScript等。
强类型定义语言在速度上可能略逊色于弱类型定义语言,但是强类型定义语言带来的严谨性能够有效的避免许多错误。
另外,“这门语言是不是动态语言”与“这门语言是否类型安全”之间是完全没有联系的!例如:Python是动态语言,是强类型定义语言(类型安全的语言); VBScript是动态语言,是弱类型定义语言(类型不安全的语言)。
相关文章推荐
- Oracle配置监听和连接,已经一些比较容易混淆的相关概念
- java容易混淆的的内部类相关概念
- Oracle配置监听和连接,已经一些比较容易混淆的相关概念
- 【原创】Oracle配置监听和连接,已经一些比较容易混淆的相关概念
- [C++基础]那些容易被混淆的概念:函数/数组指针-指针函数/数组,类/函数模板-模板类/函数
- 一文理清区块链里那些容易混淆的概念
- [C++基础]那些容易被混淆的概念:函数/数组指针-指针函数/数组,类/函数模板-模板类/函数
- Oracle配置监听和连接,以及一些比较容易混淆的相关概念
- DataTable,DataView和DataGrid中一些容易混淆的概念
- C#中一些没搞明白或者容易混淆的概念以及面试中可能遇到的问题
- DataTable,DataView和DataGrid中一些容易混淆的概念
- resultMap与resultType的区别等容易混淆的概念
- XML数据库中几个容易混淆的概念
- 关于继承比较容易混淆的概念
- WCDMA缩略语 & 几个容易混淆的概念 & 关于掉话原因分析
- DataTable,DataView和DataGrid中一些容易混淆的概念
- 傅里叶分析中几个容易混淆的概念(转帖)
- c#中的一些容易混淆的概念
- 【Web Tricks 10】web编程中几个容易混淆的函数(概念)
- 带你走进EJB--那些跟EJB容器相关的那些Java概念