强类型语言和弱类型的语言有什么区别?

如题所述

拿C++和php打比,php强语言,c++弱语言.
1)语法有区别,最明显的弱语言不需要设定变量类型,强语言需要;
2)底层上,弱语言是解释执行,强语言是编译执行(java另说,生成中间字节码);
3)性能上差距太大,强语言大大快于php;
4)开发效率,弱语言要快于强语言,所以web开发弱语言很高效;
5)学习曲线不同,弱语言简单好学但是精通的太少了,很多强语言的特性都没有或者牵强的模拟实现;强语言入门门槛高,学不容易,语言特性多,逼着你都学会,另外由于传统软件行业对编程的要求本来就高于web行业导致写传统软件的人的编程素质要远远强于web行业的;
6)最佳的应用场景不同,php只能做web,c++做底层 软件,也可以做web(但是没人这么做)
我用最通俗的话告诉你了区别,但是不仅限于这些.
所以无论做软件还是web,建议强语言(c++ java等)和弱语言(php python perl ruby等)都至少懂一种,另外单独的像js这种基于原型的客户端脚本语言也必须要会!
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2018-01-06
弱类型语言vbs:
a=1
b=a+"1"+"a" //结果是11a,这里 a 成了字符串
c=a+1 //结果是2 ,这里a则是数字型

强类型语言:c#
int a=2
string b=a.ToString()+"1"+"a"
int c=a+1

看到了吗?区分大小写,需要实现申明类型外,一个重要的区别是,弱类型的语言的东西没有明显的类型,他能随着环境的不同,自动变换类型
而强类型则没这样的规定,不同类型间的操作有严格定义,只有相同类型的变量才能操作,虽然系统也有一定的默认转换,当绝没有弱类型那么随便

ps:弱类型代码简单,但因为变量没有确定的类型,所以容易出错!强类型代码复杂(比如:转换日期显示格式 (convert.toDatetime("2007-1-1 08:08:08")).ToString("yyyy-MM-dd"),呵呵你可以看到这种写法相当麻烦),但因为有严格定义所以不容易出错本回答被网友采纳
相似回答