C#和Java特點(diǎn)簡(jiǎn)單介紹
在向大家詳細(xì)介紹C#和Java特點(diǎn)之前,首先讓大家了解下C#和.NET平臺(tái)的概貌,然后全面介紹C#和Java特點(diǎn)。
多人說C#是微軟用來和Java抗衡的武器,因?yàn)槎咴诤艽蟪潭壬嫌兄@人的相似,盡管如此,兩者不同的地方也很多,所謂“于細(xì)微處見差異”。那么兩者的相似和區(qū)別都在什么地方呢?我們從今天開始,會(huì)從各個(gè)角度來對(duì)比C#和Java特點(diǎn),希望能對(duì)正在學(xué)習(xí)、使用C#的朋友有所幫助。
1、C#和.NET平臺(tái)的概貌
2000年6月,微軟發(fā)布C#語言和.NET平臺(tái)。C#語言是一種強(qiáng)類型的,面向?qū)ο蟮恼Z言,它具有語法簡(jiǎn)單、表達(dá)力強(qiáng)的特點(diǎn),而.NET平臺(tái)則是構(gòu)成微軟的“.NET計(jì)劃”的基石。
.NET平臺(tái)的核心包括兩方面,一方面就是著名的通用語言運(yùn)行機(jī)(Common Language Runtime),雖然這個(gè)名詞起得晦澀了點(diǎn),不過大家可以拿它和Java的虛擬機(jī)來作比較,二者完成的任務(wù)大致相同;另一方面就是一大堆通用函數(shù)庫,這些庫函數(shù)可以被多種語言調(diào)用,并且通過編譯都產(chǎn)生一種共同的中間語言(Intermediate Language),這種語言也可以拿Java的字節(jié)碼來類比,雖然完成的方式有些不一樣。
2、C#和Java特點(diǎn)
下面簡(jiǎn)單地把C#和Java的相似處列出來,雖然在這里我們重點(diǎn)討論的是C#和Java特點(diǎn)的不同,但是了解一下二者的相同之處也是很有必要的。
二者都編譯成跨平臺(tái)的、跨語言的代碼,并且代碼只能在一個(gè)受控制的環(huán)境中運(yùn)行自動(dòng)回收垃圾內(nèi)存,并且消除了指針(在C#中可以使用指針,不過必須注明unsafe關(guān)鍵字)都不需要頭文件,所有的代碼都被“包(package)”限制在某個(gè)范圍內(nèi),并且因?yàn)闆]有頭文件,所以消除了類定義的循環(huán)依賴所有的類都是從對(duì)象派生出來,并且必須使用New關(guān)鍵字分配內(nèi)存用對(duì)象加鎖的方式來支持多線程都具有接口(interface)的概念
內(nèi)部類
◆繼承類的時(shí)候不會(huì)以某種特定的訪問權(quán)限來繼承;
◆沒有全局函數(shù)或者常量,一切必須屬于類;
◆數(shù)組或者字符串都自帶長(zhǎng)度計(jì)算和邊界檢查;
◆只使用“.”操作符,沒有“->”和“::”;
◆“null”、“boolean”和“bool”成為了關(guān)鍵字;
◆任何變量均在使用前進(jìn)行初始化;
◆不能使用整數(shù)來返回到if條件語句中,必須使用布爾值;
◆“Try”模塊后可以有“finally” ;
【編輯推薦】