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

基本概念

静态语言(强类型语言)

  • 在编译时变量的数据类型即可确定的语言
  • 多数静态类型语言要求在使用变量之前必须声明数据类型
  • 例如:C++、Java、Delphi、C#等

动态语言(弱类型语言)

  • 在运行时确定数据类型的语言
  • 变量使用之前不需要类型声明,通常变量的类型是被赋值的那个值的类型
  • 例如:PHP/ASP/Ruby/Python/Perl/ABAP/SQL/JavaScript/Unix Shell 等等

强类型定义语言

  • 强制数据类型定义的语言
  • 也就是说,一旦一个变量被指定了某个数据类型,如果不经过强制转换,那么它就永远是这个数据类型
  • 例如:如果你定义了一个整型变量a,那么程序根本不可能将a当作字符串类型处理
  • 强类型定义语言是类型安全的语言。

弱类型定义语言

  • 数据类型可以被忽略的语言
  • 它与强类型定义语言相反, 一个变量可以赋不同数据类型的值

区别

强类型语言与弱类型语言

  • 强类型语言是一旦变量的类型被确定,就不能转化的语言
  • 弱类型语言则反之,一个变量的类型是由其应用上下文确定的
  • 强类型定义语言在速度上可能略逊色于弱类型定义语言,但是强类型定义语言带来的严谨性能够有效的避免许多错误。

静态语言与动态语言

  • 静态语言的优势
    • 由于类型的强制声明,使得IDE有很强的代码感知能力,故,在实现复杂的业务逻辑、开发大型商业系统、以及那些生命周期很长的应用中,依托IDE对系统的开发很有保障;
    • 由于静态语言相对比较封闭,使得第三方开发包对代码的侵害性可以降到最低;
  • 动态语言的优势
    • 思维不受束缚,可以任意发挥,把更多的精力放在产品本身上
    • 集中思考业务逻辑实现,思考过程即实现过程
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值