| 網(wǎng)站首頁(yè) | 關(guān)于我們 | 開(kāi)發(fā)優(yōu)勢(shì) | 產(chǎn)品展示 |
| 合作企業(yè) | 新聞動(dòng)態(tài) | 聯(lián)系我們 | 電話聯(lián)系 |
文章作者:濟(jì)南軟件開(kāi)發(fā) 時(shí)間:2016年09月27日
山東軟件開(kāi)發(fā)C#與Java的區(qū)別
C#最引人的地方是它與Java的區(qū)別而不是其相似性。下面主要來(lái)介紹C#區(qū)別于Java的不同的運(yùn)行特點(diǎn)及Java完全沒(méi)有的特點(diǎn)。
中間語(yǔ)言
當(dāng)MSIL被編譯成最終的機(jī)器碼時(shí),微軟公司在如何選擇上是非常靈活的。微軟公司很謹(jǐn)慎的對(duì)外宣稱說(shuō)MSIL不是解釋型的,而是被編譯成機(jī)器碼。因?yàn)殚_(kāi)發(fā)人員都有這樣一個(gè)觀念:Java程序天生就比C程序運(yùn)行慢,所以這暗示著基于MSIL的程序優(yōu)于解釋型的Java字節(jié)碼。當(dāng)然,既然C#和其它MSIL產(chǎn)品編譯器還未發(fā)布,那么這一點(diǎn)就還未證明,但是Java無(wú)處不在的即時(shí)編譯器使得C#和Java在效能上是一樣的。象“C#是編譯型的,Java是解釋型的”這樣話只是****中的技巧。Java的字節(jié)碼和MSIL碼都是的類似匯編的中間語(yǔ)言,在運(yùn)行時(shí)執(zhí)行這些中間碼。
與COM的整合
對(duì)于基于Windows的C#開(kāi)發(fā)人員來(lái)說(shuō),最大的收獲是對(duì)COM的無(wú)損整合,COM是微軟Win32的組件技術(shù)。實(shí)際上,任何一種.Net體系結(jié)構(gòu)上的語(yǔ)言最終都可能去寫(xiě)COM的客戶端和服務(wù)器端程序。用C#編寫(xiě)的類也會(huì)作為COM組件的子類;結(jié)果類(resulting class)也能作為COM組件使用,并作為COM組件的子類。
微軟公司的目標(biāo)是使越來(lái)越多的語(yǔ)言都能訪問(wèn)組件,并使這些組件能整合到.Net體系結(jié)構(gòu)中。已有幾個(gè)廠商開(kāi)始著手開(kāi)發(fā)支持.Net功能的編程語(yǔ)言,如COBOL和Haskell。開(kāi)發(fā)
人員能選擇不同的語(yǔ)言解決不同問(wèn)題,更重要的是,開(kāi)發(fā)人員不必為采用.Net體系結(jié)構(gòu)而必須學(xué)習(xí)新語(yǔ)言,可以選擇一種他們熟悉的語(yǔ)言。
總結(jié)
本文的第一、二部分對(duì)C#做了一膚淺的總體介紹,主要是其產(chǎn)生動(dòng)機(jī)及與Java的相似性。第三部分則涵概了C#的語(yǔ)言特點(diǎn)。用范例說(shuō)明了C#與Java兩者在相似性外,它們又是非常不同的,有許多細(xì)微的語(yǔ)義和設(shè)計(jì)區(qū)別,適合不同的技術(shù)和市場(chǎng)環(huán)境,又談到了微軟公司對(duì)C#進(jìn)行標(biāo)準(zhǔn)化方面的嘗試,及其對(duì)Java的影響。c#與java的區(qū)別
1.屬性:
java中定義和訪問(wèn)均要用get和set方法,可以不成對(duì)出現(xiàn)。
c#中是真正的屬性,定義時(shí)get和set必須同時(shí)出現(xiàn),房問(wèn)時(shí)用.號(hào)即可。不用get,set
2.對(duì)象索引就是對(duì)象數(shù)組
public Story this [int index] {
3.C#中,不用任何范圍修飾符時(shí),默認(rèn)的是protect,因而不能在類外被訪問(wèn).
4.因?yàn)镴AVA規(guī)定,在一個(gè)文件中只能有一個(gè)public類,而且這個(gè)類的名稱必須與文件名一模一樣,這是一個(gè)區(qū)別
5.在C#中,它是以Main方法來(lái)定位入口的.如果一個(gè)程序中沒(méi)有一個(gè)名為Main的方法,就會(huì)出"找不到入口的錯(cuò)誤".不要把Main寫(xiě)成main喲
6.C#預(yù)定義的簡(jiǎn)單數(shù)據(jù)類型比Java多。例如,C#有unit,即無(wú)符號(hào)整數(shù)
7.忘掉Java中的static final修飾符。在C#中,常量可以用const關(guān)鍵詞聲明
C#的設(shè)計(jì)者還增加了readonly關(guān)鍵詞,readonly域只能通過(guò)初始化器或類的構(gòu)造函數(shù)設(shè)置
8.公用類的入口點(diǎn):c#是可以對(duì)Main進(jìn)行重載(java中是main),允許有int返回值和空參數(shù)的Main
9.在Java中,switch語(yǔ)句只能處理整數(shù)。但C#中的switch語(yǔ)句不同,它還能夠處理字符變量。請(qǐng)考慮下面用switch語(yǔ)句處理字符串變量的C#代碼
10.C#沒(méi)有>>>移位操作符
11.goto關(guān)鍵詞:
Java不用goto關(guān)鍵詞。在C#中,goto允許你轉(zhuǎn)到指定的標(biāo)簽。不過(guò),C#以特別謹(jǐn)慎的態(tài)度對(duì)待goto,比如它不允許goto轉(zhuǎn)入到語(yǔ)句塊的內(nèi)部。在Java中,你可以用帶標(biāo)簽的語(yǔ)句加上break或continue取代C#中的goto。
12.int[] x = { 0, 1, 2, 3 };
int x[] = { 0, 1, 2, 3 };
但在C#中,只有第一行代碼合法,[]不能放到變量名字之后。
想要了解更多詳情歡迎來(lái)電咨詢18678812288
登陸網(wǎng)址:m.h6244.cn。
聯(lián)系人:王經(jīng)理。