第1个回答 2014-11-01
弱类型语言内存布局上一般是个Union结构,并且要包含一个类型字段,因为计算机底层还是要知道明确的类型信息。
因为包含类型信息,所以在代码的上下文中,可能会进行隐含的类型转换,比如把字符串转整型,整型转字符串,这样会稍损性能,并且可能会不符合程序本意。
弱类型语言都是脚本语言,在运行时确定值,所以跟编译不相关。
我的经验是弱类型在大项目开发上,还是不方便,需要在整个框架结构上做规范,否则多人合作开发比较麻烦。
弱类型使用简单,更灵活多变。对于程序员来讲这是个优点。
强类型语言,类型转换的时候非常严格,这跟语言特点有关系,
强类型语言是直接操纵内存,容易出内存越界和泄漏的问题。在类型的转换方面是很多约束,甚至强制转换也要很谨慎,一不小心就出大问题。
弱类型语言一般都会牺牲一些运行性能,不过简单好用,而且相对安全。
其实两种类型对应的语言本身其他的差异已经很大了,整个区别还是比较明显的。