一、C#、C++和Java
C#的語言規(guī)范由Microsoft的Anders Hejlsberg與Scott Wiltamuth編寫。在當(dāng)前Microsoft天花亂墜的宣傳中,對C#和C++、Java作一番比較總是很有趣的。考慮到當(dāng)前IT媒體的輿論傾向,如果你早就知道C#更接近Java而不是C++,事情也不值得大驚小怪。顯然,結(jié)論應(yīng)該是:Java和C#雖然不是孿生子,但C#最主要的特色卻更接近Java而不是C++。
表1:比較C#、C++和Java最重要的功能 | |||
功能 | C# | C++ | Java |
繼承 | 允許繼承單個類,允許實現(xiàn)多個接口 | 允許從多個類繼承 | 允許繼承單個類,允許實現(xiàn)多個接口 |
接口實現(xiàn) | 通過“interface”關(guān)鍵詞 | 通過抽象類 | 通過“interface”關(guān)鍵詞 |
內(nèi)存管理 | 由運行時環(huán)境管理,使用垃圾收集器 | 需要手工管理 | 由運行時環(huán)境管理,使用垃圾收集器 |
指針 | 支持,但只在很少使用的非安全模式下才支持。通常以引用取代指針 | 支持,一種很常用的功能。 | 完全不支持。代之以引用。 |
源代碼編譯后的形式 | .NET中間語言(IL) | 可執(zhí)行代碼 | 字節(jié)碼 |
單一的公共基類 | 是 | 否 | 是 |
異常處理 | 異常處理 | 返回錯誤 | 異常處理。 |
下面將說說C#和Java的一些重要區(qū)別。
二、語言規(guī)范的比較
2.1、簡單數(shù)據(jù)類型
簡單數(shù)據(jù)類型(Primitive)在C#中稱為值類型,C#預(yù)定義的簡單數(shù)據(jù)類型比Java多。例如,C#有unit,即無符號整數(shù)。表2列出了所有C#的預(yù)定義數(shù)據(jù)類型:
表2:C#中的值類型 | |
類型 | 說明 |
object | 所有類型的最終極的基類 |
string | 字符串類型;字符串是一個Unicode字符的序列 |
sbyte | 8位帶符號整數(shù) |
short | 16位帶符號整數(shù) |
int | 32位帶符號整數(shù) |
long | 64位帶符號整數(shù) |
byte | 8位無符號整數(shù) |
ushort | 16位無符號整數(shù) |
uint | 32位無符號整數(shù) |
ulong | 64位無符號整數(shù) |
float | 單精度浮點數(shù)類型 |
double | 雙精度浮點數(shù)類型 |
bool | 布爾類型;bool值或者是true,或者是false |
char | 字符類型;一個char值即是一個Unicode字符 |
decimal | 有28位有效數(shù)字的高精度小數(shù)類型 |
2.2、常量
忘掉Java中的static final修飾符。在C#中,常量可以用const關(guān)鍵詞聲明。
public const int x = 55;
NET技術(shù):C# VS Java,轉(zhuǎn)載需保留來源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。