强类型和弱类型主要是站在变量类型处理的角度进行分类的。
强类型是指不允许隐式变量类型转换,若类型则允许隐式类型转换。
所以,关键在于变量数据类型的转换。
什么叫隐式类型转换?
隐式是指源码中没有明显的类型转换代码,也就是说,一个变量,你可以直接给他赋值字符串,也可以直接给他赋值数值,你还可以让字符串类型的变量和数值类型的变量相加,虽然得出最终结果未必是你想象的那样,但一定不会包旭哦。
这就是隐式类型转换,弱类型语言,如 javascript、php。
Java 是强类型语言,不允许隐式转换,也就是说,如果你需要拿一个字符串变量当做整型类用,你必须显示的将变量类型转换好。
换句话说:
- 强类型语言,当你定义一个变量是某个类型,如果不经过代码显示转换(强制转换)过,它就永远都是这个类型,如果把它当做哦其他类型来用,就会报错。
- 若类型语言,你想把这个变量当做什么类型来用,就当做什么类型来用,语言的解析器会自动(隐式)转换。
比较
对于开发者来说,一般很少去想,选择什么语言开发,而是去想我学了这门语言,如何找到这门语言的工作。
但其实,语言的选择是存在的。
比如,你负责一个项目,在做选择的时候,弱类型与强类型的一些优缺点,就是需要考虑的因素。