六种主流编程语言C++、PYTHON、JAVA对比

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

六种主流编程语言(C、C++、Python、JavaScript、PHP、Java)特性对比时间2014-02-2409:17:54CSDN博客原文这些年来我陆陆续续已经学习了六种编程语言,有些人会说语言学到最后不都差不多吗?其实可以这样讲,也可以不这样讲。虽然每种语言的表达能力大部分是重合的,只是语法表现形式不一样,但是由于历史发展的原因,每种语言形成了自己的支撑环境,所以都有其主要的适用范围。C、C++、Python和Java四种是通用编程语言,JavaScript和PHP算是Web环境的专用编程语言。C语言由于其底层操作特性和历史的积累,在嵌入式领域是当之无愧的王者;C++是一种支持最广泛编程范式的复杂语言,这些年来发展不太好,目前在服务器后台和游戏领域还有其一席之地;Python作为一种灵活的轻便的通用型脚本语言,使用范围比较广,从应用软件到Web开发都有它的身影,由于其解释语言的特点,比较适合轻量级或原型开发;JavaScript语言由于其是浏览器内置的脚本语言,是Web前端开发的主流,近年来由于google的V8引擎开源,出现了Node.js之类JavaScript后台开发框架,把JavaScript的应用领域扩展到了Web后台;PHP作为一种简单的Web服务器后台脚本语言,在全世界范围内的网站上有最大的使用率;Java由于其跨平台可移植性,在Web开发领域大放异彩,特别是在企业级Web开发,同时由于Android系统采用Java来开发应用程序,所以也随着Android的发展而应用越发广泛。理清不同语言间主要语法特性的差异,才能更好的在合适的领域或场景下去应用合适的编程语言,以满足我们所面对的需求。这六种语言都是从C语言发展而来,所以它们的语法都比较像C语言,下面我就主要语法特性对各个语言做一个对比。1、常量定义C:#defineTEST0C++:#defineTEST0或者consttest=0;Python:test=0JavaScript:不支持PHP:define('test',1);Java:finalinttest=0;分析:JavaScript不支持常量,C、C++都用特有的预定义宏,PHP用特殊的define语法,其它的都用定义不变变量的方式。2、变量定义C:inttest=0;C++:inttest=0;Python:test=0JavaScript:valtest=0;PHP:$test=0;Java:inttest=0;分析:这个最基本的都支持了。3、函数定义C:inttest(intparam){}C++:inttest(intparam){}Python:deftest(param):JavaScript:functiontest(param){}PHP:functiontest($param){}Java:publicclasstest{publicinttest(intparam){}}分析:这个也是最基本的了,只是Java比较特殊,不支持定义类之外的函数。4、类定义(含继承)C:不支持C++:classtest2:publictest1{}Python:classtest2(test1):JavaScript:functiontest2(){}test2.prototype=inherit(test1.prototype){}PHP:classtest2extendtest1{}Java:classtest2extendstest1{}分析:C由于是传统面向过程的语言不支持类,其他的都支持了,只是JavaScript的类模型比较特殊,把函数作为类来使用。5、对象定义C:不支持C++:test2obj=newtest2();Python:obj=test2()JavaScript:varobj=newtest2();PHP:$obj=newtest2();Java:test2obj=newtest2();分析:除了C外其它语言都是通过new一个对象。6、数组定义C:inta[]={1,2,3};C++:inta[]={1,2,3};Python:a=[1,2,3]JavaScript:vara=[1,2,3];PHP:$a=array(1,2,3);Java:inta[]={1,2,3};分析:数组是语言的基本特性,都支持了,只是PHP通过类似函数调用的语法来完成。7、条件语句C:if(test0){}elseif(test0){}else{}C++:if(test0){}elseif(test0){}else{}Python:iftest0:eliftest0:else:JavaScript:if(test0){}elseif(test0){}else{}PHP:if($test0){}elseif($test0){}else{}Java:if(test0){}elseif(test0){}else{}分析:这是最基本的语句,都支持了。8、循环语句C:for(idx=0;idxnum;idx++){}C++:for(idx=0;idxnum;idx++){}Python:foridxinrange(1,10):JavaScript:for(varidx=0;idxnum;idx++){}PHP:for($idx=0;$idx$num;$idx++){}Java:for(idx=0;idxnum;idx++){}分析:这个也是基本的语句,都支持了。9、foreach语句C:不支持C++:不支持Python:foriina:或者forkeyind:d[key]JavaScript:for(iina){}PHP:foreach($aas$i){}Java:for(inti:a){}分析:foreach算是循环语句的一个变种,在操作顺序容器的时候非常有用,可以看到C和C++不支持,其它的都语言内置支持了。10、打印语句C:printf(test:%d,val);C++:couttest:valendl;Python:printtest:+valJavaScript:不支持PHP:echotest:$val;Java:System.out.println(test:+val);分析:打印算是语言所运行环境的支持库功能,除了JavaScript外都支持了,因为JavaScript主要使用来操控DOM树的,没有自己的输出窗口所以也没必要支持。11、字符串定义C:chartest[]={helloworld};C++:Stringtest=helloworld;Python:test=helloworldJavaScript:vartest=helloworld;PHP:$test=helloworld;Java:Stringtest=helloworld;分析:这个都支持了,其中C++、Java都是用标准库来现实的。12、字符串串接C:test=strcat(test1,test2);C++:test=test1+test2;(STL库)Python:test=test1+test2JavaScript:vartest=test1+test2;PHP:$test=$test1.=$test2;Java:test=test1+test2;分析:很有用的功能,除了C是用标准库函数来实现,其它都是语言内置支持了。13、字符串分割C:不支持C++:test.substr(3,8);Python:test[3:8]JavaScript:test.slice(3,5);PHP:substr($test,3,5);Java:test.substring(3,8);分析:常用的功能,C不支持,Python是语言内置支持,其他的都依靠库来完成。14、字符串正则表达式C:不支持C++:不支持Python:test.replace(test1,test2)JavaScript:test.replace(/test1/gi,test2);PHP:str_replace($test,test1,test2);Java:test.replaceAll(test1,test2);分析:常用的功能,可惜C、C++不支持,其他都有标准库来支持。15、内置容器类型C:数组C++:数组顺序容器Vector关联容器PairMapSetPython:列表/元组字典JavaScript:数组对象PHP:数组(含关联数组)Java:数组序列Collection映射表Map分析:C最简单只支持数组,其他都支持容器,不过主要还是顺序容器和关联容器两大类。16、注释方式C:/**/C++://Python:#JavaScript:/**///PHP:/**///#Java:/**///分析:大概就/**/、//、#三种方式,各自支持情况不一。17、多线程支持C:支持C++:支持Python:支持JavaScript:不支持PHP:不支持Java:支持分析:四种通用编程语言都支持了,两种专用编程语言都不支持。18、socket支持C:支持C++:支持Python:支持JavaScript:不支持PHP:支持Java:支持分析:除了JavaScript以外都支持,这也是JavaScript的应用领域限制所决定的。19、垃圾回收机制C:不支持C++:不支持Python:支持JavaScript:支持PHP:支持Java:支持分析:这是现代语言的重要机制,C和C++不支持,其他的都支持了。20、引入其他文件中的函数C:exportinttest();C++:exportinttest();Python:fromtestimport*JavaScript:scriptlanguage='javascript'src=test.jscharset=utf-8/scriptPHP:require_once('test.php');或者include_once('test.php');Java:importjava.util.test.*;分析:都支持,C和C++用export,Python和Java用import,JavaScript依靠HTML脚本,PHP用自己的函数调用。21、将字符串作为指令执行C:不支持C++:不支持Python:eval(port=5060)JavaScript:eval(port=5060;);PHP:eval(port=5060;);Java:Porcessproc=newProcessBuilder(“test”).start();分析:很有用的一个动态语言特性,C和C++都不支持,Java要类库来支持,其它的语言内置eval关键字来支持。5种方式将机器学习带到Java、Python以及Go等编程语言发表于2014-08-1414:45|5082次阅读|来源InfoWorld|7条评论|作者SerdarYegulalp大数据机器学习JavaPythonGoJavaScript开源摘要:机器学习目前炙手可热,本文搜集了Java、Python以及go等编程语言中常见且实用的开源机器学习工具,对机器学习感兴趣的开发者或者准备和机器学习打交道的数据科学家们不能错过了。【编者按】机器学习似乎在一夜之间从默默无闻的小卒变成万众瞩目的焦点,关于机器学习的开源工具也越来越多,但是目前的挑战是,如何让对机器学习感兴趣的开发者和准备使用它的数据科学家们真正使用上它们,本文搜集了几种语言中常见且实用的开源机器学习工具,非常值得关注,本文来自InfoWorld。以下为原文:经过几十年作为一门专业学科的发展后,机器学习似乎一夜之间作为万众瞩目的商业工具出现在我们面前。目前面临的挑战是如何让其具备实效,尤其是对开发者和正准备使用它的数据科学家们。为此,我们搜集了一些最常见的且实用的

1 / 10
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功