静态类型语言和动态类型语言的区别, 强类型和弱类型的区别,编译型和解释型,混合型语言的区别

静态类型语言

在编译时就检查数据类型,比如:C,C++,JAVA,C#

动态类型语言

在运行时才确定数据类型,比如:JavaScript,php,Python,VBScript

两者的区别是检查类型的时机不同

静态类型语言适合大型功能,严谨不容易出错,但是代码量大

而动态类型语言容易出错,但是更加灵活,注重业务本身

 

强类型语言

一个变量被指定了某个数据类型,如果不经过强制转换,那么它就就是这个数据类型了。强类型语言是类型安全的语言,如:java、.NET、C/C++

也就是说,如果你需要拿一个字符串变量当做整型来用,你必须显式地将变量类型转换好

弱类型语言

允许隐式转换,一个变量,你可以给他赋值字符串,也可以给他赋值double,你还可以直接让字符串类型的变量和数值类型的变量相加,虽然得出的最终结果未必是你想象的那样,但一定不会报错

这就是隐式类型转换,弱类型语言,如javascript、php

这里有个误区,静态类型语言和动态类型语言 和强类型弱类型,完全按自己的标准判断,没有必然联系

例如:Python是动态语言,强类型语言 ;  VBScript是动态语言,弱类型语言 ;   JAVA是静态语言,强类型语言

1.强类型语言由于类型之间不可隐式转换而更加可靠。同时,强类型语言要求完全显示转换,开发效率低
2.弱类型语言的开发效率相比强类型语言高一些,但可靠性弱一些,容易出错

 

 

编译型语言

源代码需要通过编译器编译成机器可识别的机器码,包括编译和链接两个过程。不同操作系统下的可执行文件不一样。代表语言有:C,C++
优点:执行速度快
缺点:修改了某一个模块就得重新编译

解释型语言

相对于编译型语言少了编译过程,源代码运行时由解释器逐行解释。代表语言有:JavaScript,Python,php
优点:部署快,不停机维护,有很好的平台兼容性
缺点:每次运行都需要解释一遍,性能上不如编译型语言

混合型语言

混合型语言就包括了编译过程和解释过程。比如:C#先是编译成中间码,并不是直接编译成机器码。java有先编译成中间字节码.class文件过程,最后在java虚拟机中解释执行
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值