欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
六種主流編程語(yǔ)言(C、C++、Python、JavaScript、PHP、Java)特性對比

  這些年來(lái)我陸陸續續已經(jīng)學(xué)習了六種編程語(yǔ)言,有些人會(huì )說(shuō)語(yǔ)言學(xué)到最后不都差不多嗎?其實(shí)可以這樣講,也可以不這樣講。雖然每種語(yǔ)言的表達能力大部分是重合的,只是語(yǔ)法表現形式不一樣,但是由于歷史發(fā)展的原因,每種語(yǔ)言形成了自己的支撐環(huán)境,所以都有其主要的適用范圍。

       C、C++、Python和Java四種是通用編程語(yǔ)言,JavaScript和PHP算是Web環(huán)境的專(zhuān)用編程語(yǔ)言。C語(yǔ)言由于其底層操作特性和歷史的積累,在嵌入式領(lǐng)域是當之無(wú)愧的王者;C++是一種支持最廣泛編程范式的復雜語(yǔ)言,這些年來(lái)發(fā)展不太好,目前在服務(wù)器后臺和游戲領(lǐng)域還有其一席之地;Python作為一種靈活的輕便的通用型腳本語(yǔ)言,使用范圍比較廣,從應用軟件到Web開(kāi)發(fā)都有它的身影,由于其解釋語(yǔ)言的特點(diǎn),比較適合輕量級或原型開(kāi)發(fā);JavaScript語(yǔ)言由于其是瀏覽器內置的腳本語(yǔ)言,是Web前端開(kāi)發(fā)的主流,近年來(lái)由于google的V8引擎開(kāi)源,出現了Node.js之類(lèi)JavaScript后臺開(kāi)發(fā)框架,把JavaScript的應用領(lǐng)域擴展到了Web后臺;PHP作為一種簡(jiǎn)單的Web服務(wù)器后臺腳本語(yǔ)言,在全世界范圍內的網(wǎng)站上有最大的使用率;Java由于其跨平臺可移植性,在Web開(kāi)發(fā)領(lǐng)域大放異彩,特別是在企業(yè)級Web開(kāi)發(fā),同時(shí)由于A(yíng)ndroid系統采用Java來(lái)開(kāi)發(fā)應用程序,所以也隨著(zhù)Android的發(fā)展而應用越發(fā)廣泛。

       理清不同語(yǔ)言間主要語(yǔ)法特性的差異,才能更好的在合適的領(lǐng)域或場(chǎng)景下去應用合適的編程語(yǔ)言,以滿(mǎn)足我們所面對的需求。這六種語(yǔ)言都是從C語(yǔ)言發(fā)展而來(lái),所以它們的語(yǔ)法都比較像C語(yǔ)言,下面我就主要語(yǔ)法特性對各個(gè)語(yǔ)言做一個(gè)對比。

1、常量定義

C:#define TEST 0

C++:#define TEST 0

或者

const test = 0;

Python:test = 0

JavaScript:不支持

PHP:define('test', 1);

Java:final int test = 0;

分析:JavaScript不支持常量,C、C++都用特有的預定義宏,PHP用特殊的define語(yǔ)法,其它的都用定義不變變量的方式。

2、變量定義

C:int test = 0;

C++:int test = 0;

Python:test = 0

JavaScript:val test = 0;

PHP:$test = 0;

Java:int test = 0;

分析:這個(gè)最基本的都支持了。

3、函數定義

C:int test(int param){}

C++:int test(int param){}

Python:def test(param):

JavaScript:function test(param){}

PHP:function test($param){}

Java:public class test{

public int test(int param){} }

分析:這個(gè)也是最基本的了,只是Java比較特殊,不支持定義類(lèi)之外的函數。

4、類(lèi)定義(含繼承)

C:不支持

C++:class test2: public test1{}

Python:class test2(test1):

JavaScript:function test2(){}

test2.prototype =inherit(test1.prototype){}

PHP:class test2 extend test1{}

Java:class test2 extends test1{}

分析:C由于是傳統面向過(guò)程的語(yǔ)言不支持類(lèi),其他的都支持了,只是JavaScript的類(lèi)模型比較特殊,把函數作為類(lèi)來(lái)使用。

5、對象定義

C:不支持

C++:test2 obj = new test2();

Python:obj = test2()

JavaScript:var obj = new test2();

PHP:$obj = new test2();

Java:test2 obj = new test2();

分析:除了C外其它語(yǔ)言都是通過(guò)new一個(gè)對象。

6、數組定義

C:int a[] = {1, 2, 3};

C++:int a[] = {1, 2, 3};

Python:a = [1, 2, 3]

JavaScript:var a = [1, 2, 3];

PHP:$a = array("1", "2", "3");

Java:int a[] = {1, 2, 3};

分析:數組是語(yǔ)言的基本特性,都支持了,只是PHP通過(guò)類(lèi)似函數調用的語(yǔ)法來(lái)完成。

7、條件語(yǔ)句

C:if (test > 0){}

else if (test < 0){}

else{}

C++:if (test > 0){}

else if (test < 0){}

else{}

Python:if test > 0:

elif test < 0:

else:

JavaScript:if (test > 0){}

else if (test < 0){}

else{}

PHP:if ($test > 0){}

elseif ($test < 0){}

else{}

Java:if (test > 0){}

else if (test < 0){}

else{}

分析:這是最基本的語(yǔ)句,都支持了。

8、循環(huán)語(yǔ)句

C:for (idx=0; idx<num; idx++){}

C++:for (idx=0; idx<num; idx++){}

Python:for idx in range(1,10):

JavaScript:for (var idx=0; idx<num; idx++){}

PHP:for ($idx=0; $idx<$num; $idx++){}

Java:for (idx=0; idx<num; idx++){}

分析:這個(gè)也是基本的語(yǔ)句,都支持了。

9、foreach語(yǔ)句

C:不支持

C++:不支持

Python:for i in a:

或者

for key in d:

d[key]

JavaScript:for(i in a){}

PHP:foreach($a as $i){}

Java:for(int i : a){}

分析:foreach算是循環(huán)語(yǔ)句的一個(gè)變種,在操作順序容器的時(shí)候非常有用,可以看到C和C++不支持,其它的都語(yǔ)言?xún)戎弥С至恕?/p>

10、打印語(yǔ)句

C:printf("test: %d", val);

C++:cout<<"test: "<<val<<endl;

Python:print "test: "+val

JavaScript:不支持

PHP:echo "test: $val";

Java:System.out.println("test :"+val);

分析:打印算是語(yǔ)言所運行環(huán)境的支持庫功能,除了JavaScript外都支持了,因為JavaScript主要使用來(lái)操控DOM樹(shù)的,沒(méi)有自己的輸出窗口所以也沒(méi)必要支持。

11、字符串定義

C:char test[] = {"helloworld"};

C++:String test = "helloworld";

Python:test = "helloworld"

JavaScript:var test = "helloworld";

PHP:$test = "helloworld";

Java:String test = "helloworld";

分析:這個(gè)都支持了,其中C++、Java都是用標準庫來(lái)現實(shí)的。

12、字符串串接

C:test = strcat(test1, test2);

C++:test = test1 + test2;(STL庫)

Python:test = test1 + test2

JavaScript:var test = test1 + test2;

PHP:$test = $test1 .= $test2;

Java:test = test1 + test2;

分析:很有用的功能,除了C是用標準庫函數來(lái)實(shí)現,其它都是語(yǔ)言?xún)戎弥С至恕?/p>

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是語(yǔ)言?xún)戎弥С?,其他的都依靠庫?lái)完成。

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++不支持,其他都有標準庫來(lái)支持。

15、內置容器類(lèi)型

C:數組

C++:數組

順序容器 Vector

關(guān)聯(lián)容器 Pair MapSet

Python:列表/元組

字典

JavaScript:數組

對象

PHP:數組(含關(guān)聯(lián)數組)

Java:數組

序列 Collection

映射表 Map

分析:C最簡(jiǎn)單只支持數組,其他都支持容器,不過(guò)主要還是順序容器和關(guān)聯(lián)容器兩大類(lèi)。

16、注釋方式

C:/* */

C++://

Python:#

JavaScript:/* */

//

PHP:/* */

//

#

Java:/* */

//

分析:大概就/**/、//、#三種方式,各自支持情況不一。

17、多線(xiàn)程支持

C:支持

C++:支持

Python:支持

JavaScript:不支持

PHP:不支持

Java:支持

分析:四種通用編程語(yǔ)言都支持了,兩種專(zhuān)用編程語(yǔ)言都不支持。

18、socket支持

C:支持

C++:支持

Python:支持

JavaScript:不支持

PHP:支持

Java:支持

分析:除了JavaScript以外都支持,這也是JavaScript的應用領(lǐng)域限制所決定的。

19、垃圾回收機制

C:不支持

C++:不支持

Python:支持

JavaScript:支持

PHP:支持

Java:支持

分析:這是現代語(yǔ)言的重要機制,C和C++不支持,其他的都支持了。

20、引入其他文件中的函數

C:export int test();

C++:export int test();

Python:from test import *

JavaScript:<script language='javascript' src="test.js"charset="utf-8"></script>

PHP:require_once('test.php');

或者

include_once('test.php');

Java:import java.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:Porcess proc = new ProcessBuilder(“test”).start();

分析:很有用的一個(gè)動(dòng)態(tài)語(yǔ)言特性,C和C++都不支持,Java要類(lèi)庫來(lái)支持,其它的語(yǔ)言?xún)戎胑val關(guān)鍵字來(lái)支持。

(完)

更多2
10
3
主題推薦
編程語(yǔ)言 javascript python c++ php
猜你在找
Openstack Horizon 開(kāi)發(fā) (一)
dll中使用new和delete
ios-王云鶴 把UIdatePicker 嵌入到 UIActionSheet中
字符串拷貝函數使用注意事項
java 計算文件目錄下文件總大小的幾種多線(xiàn)程并發(fā)實(shí)現
用expect 實(shí)現切換用戶(hù)時(shí)自動(dòng)輸入密碼
Ubuntu 內存泄漏檢測工具Valgrind的安裝
iPhone 播放音頻聲音文件
MarkdownEditing:Sublime Text 2 的 Markdown 利器
數據挖掘十大經(jīng)典算法--CART: 分類(lèi)與回歸樹(shù)
查看評論
11樓 gotopause 2014-02-25 23:46發(fā)表 [回復]
學(xué)習了,include能不能完成第20個(gè)任務(wù)
10樓 First1199 2014-02-25 18:28發(fā)表 [回復]
學(xué)
9樓 我是冰 2014-02-25 17:00發(fā)表 [回復]
C++:test2 * obj = new test2();
8樓 Dingo妹 2014-02-25 14:21發(fā)表 [回復]
學(xué)習了
7樓 jixia松 2014-02-25 11:53發(fā)表 [回復]
JavaScript還是有打印語(yǔ)句的,不過(guò)跟特定瀏覽器相關(guān)。
console.log();
6樓 java-er 2014-02-25 10:47發(fā)表 [回復]
本人會(huì )C、JAVA、JavaScript,可惜都不精通
5樓 xiaoyuanfannao 2014-02-25 07:40發(fā)表 [回復]
糾正一下在C++11中已經(jīng)支持了字符串正則表達式
4樓 墮落神殤 2014-02-24 22:01發(fā)表 [回復]
foreach 正則表達式等 C++新標準已經(jīng)支持
3樓 Robin冰與火 2014-02-24 17:26發(fā)表 [回復]
歸納的不錯
2樓 楓界易城 2014-02-24 13:12發(fā)表 [回復]
學(xué)習了,,,,,
1樓 senlinshouhu 2014-02-24 10:43發(fā)表 [回復]
支持,個(gè)人感覺(jué)還是c最好
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
幫你提升 Python 的 27 種編程語(yǔ)言
如果編程語(yǔ)言是一門(mén)武功絕學(xué)
圖解九種編程語(yǔ)言,各位看官覺(jué)得那種語(yǔ)言是NO1
盤(pán)點(diǎn)這些年被黑的最慘的語(yǔ)言
【編程語(yǔ)言?xún)?yōu)劣,如何選擇編程語(yǔ)言 | C/C++,Java,Python,Golang,Javascript,PHP,Lua,Rust】
軟件開(kāi)發(fā)語(yǔ)言大致分類(lèi)?
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久