除了类型安全的角度有强类型和弱类型之分,在类型检查的角度还可以将编程语言分为静态类型和动态类型。关于静态类型语言和动态类型语言之间的差异并没有什么争议,大家都很统一。
静态类型语言主要的表现就是,一个变量声明是它的类型就是明确的。而且在这个变量声明过后,它的类型就不允许再被修改了。相反动态类型语言的特点就是在运行阶段才能够明确一个变量的类型,而且变量的类型也可以随时发生变化。在动态类型语言当中,它的变量是没有类型的,而变量当中所存放的值是有类型的。
总结:从类型安全的角度来说一般将编程语言分为:强类型语言和弱类型语言,两者之间的区别就是是否允许随意的隐式类型转换;从类型检查的角度来看一般分为静态类型和动态类型,它们两者之间的区别就是是否允许随时去修改变量的类型。