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