成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

C#和Java詳細(xì)描述

開發(fā) 后端
這里介紹C#和Java都提出了對傳統(tǒng)C++艱深、晦澀的語法語義的改良。在語法方面,兩者都擯棄了C++中函數(shù)及其參數(shù)的const修飾、宏代換、全局變量、全局函數(shù)等許多華而不實(shí)的地方。

這里我們主要介紹C#和Java,包括介紹C#和Java都是對傳統(tǒng)C++面向組件的編程方式的革新,但7年前就出道的Java在這方面顯然與C#不可同日而語等方面。

自C#誕生之日起,關(guān)于C#和Java之間的論戰(zhàn)便此起彼伏,至今不輟。拋開Microsoft與Sun之間的恩怨與口角,客觀地從技術(shù)上講,C#和Java都是對傳統(tǒng)面向?qū)ο蟪绦蛟O(shè)計在組件化軟件時代的革新之果,可謂殊途同歸。雖說兩種語言有著“90%的重疊”,但那另外“10%的較量”也往往能夠左右一架天平的方向。

C#和Java都提出了對傳統(tǒng)C++艱深、晦澀的語法語義的改良。在語法方面,兩者都擯棄了C++中函數(shù)及其參數(shù)的const修飾、宏代換、全局變量、全局函數(shù)等許多華而不實(shí)的地方;在繼承方面,兩者都采用了更易于理解和建構(gòu)的單根繼承和多接口實(shí)現(xiàn)的方式;在源代碼組織方面,都提出了聲明與實(shí)現(xiàn)于一體的更好的邏輯封裝;在類型系統(tǒng)方面,兩個語言都在中間語言IL或字節(jié)代碼的基礎(chǔ)上提出了映射這樣的概念,徹底革新了傳統(tǒng)C++運(yùn)行時類型鑒別的問題。

但在大刀闊斧地對C++進(jìn)行改革的同時,C#顯得更為保守,它對很多原來C++中很好的特性予以了保留,如基于棧分配的輕量級結(jié)構(gòu)類型、枚舉類型、引用、輸出、數(shù)組修飾的參數(shù)傳遞方式等,這些在Java中都被很可惜地丟掉了。在基本類型和單根繼承的對象之間的類型統(tǒng)一方面,C#提出的box/unbox要比Java的包裝類顯得高明,效率也更高。

對C++不安全的指針及內(nèi)存分配方式,C#和Java都采用了托管執(zhí)行環(huán)境。而效率問題卻是托管執(zhí)行環(huán)境一直以來遭人詬病的地方。Java虛擬機(jī)(JVM)解釋執(zhí)行的方式曾經(jīng)讓很多開發(fā)者覺得“慢得無法忍受”,不過C#的JIT編譯方式卻為C#在這塊戰(zhàn)場上贏得了贊聲一片,某些C#托管代碼甚至比傳統(tǒng)C++代碼都快。雖然現(xiàn)在各廠商實(shí)現(xiàn)的Java平臺也都一致地采取了JIT編譯方式,但C#在這方面的比較優(yōu)勢非常明顯——C#的目標(biāo)編譯語言IL從設(shè)計初始就把效率擺在了重要的地位,而Java字節(jié)代碼的設(shè)計卻有些魯莽。

“一次編程,多處執(zhí)行”一直是程序設(shè)計的一個訴求,尤其是在現(xiàn)代Internet時代。在跨平臺方面,Java的支持和實(shí)現(xiàn)都是為人稱道的,雖然JVM的速度仍然讓人備感頭疼。而C#雖然在底層構(gòu)造方面對移植性進(jìn)行了充分的考慮,但至少目前還沒有出現(xiàn)成熟的、經(jīng)過檢驗的產(chǎn)品。C#在跨平臺方面似乎更熱衷于XML Web Services互操作,而不是跨平臺編程。但C#通過其基礎(chǔ)語言構(gòu)造(CLI)對二十多種主流語言對象級的互操作支持,又極大地提升了C#的技術(shù)地位。和COM組件廉價的互操作也為C#掙到不少分?jǐn)?shù)——保持一個兼容的體系對現(xiàn)代軟件工業(yè)非常重要,也是對廣大開發(fā)人員負(fù)責(zé)的表現(xiàn)。

從對C#的分析中,我們可以強(qiáng)烈地感受到C#對組件編程的“迷戀”。實(shí)際上現(xiàn)代軟件的組件開發(fā)潮流正是由1995年誕生的Java所倡導(dǎo),C#和Java都是對傳統(tǒng)C++面向組件的編程方式的革新,但7年前就出道的Java在這方面顯然與C#不可同日而語。C#通過屬性、索引器、委派、事件、操作符重載、特征、版本等實(shí)現(xiàn)了對組件編程的第一手支持。雖然這些在Java中都可以通過方法、接口或者適配器來間接地實(shí)現(xiàn),但這無論對編程效率或者邏輯設(shè)計都是一種極大的損傷——高級語言首先面對的是人,而不是機(jī)器。

除去這些語言層面的組件支持機(jī)制,.NET平臺也為組件的配置、運(yùn)行和管理提供了一攬子解決方案,為組件開發(fā)量身定做的Visual Studio .NET更是令人興奮,這些都為C#的組件編程開辟了廣闊的天地。在其他技術(shù)方面Java的微弱劣勢尚且可以忽略不計,但在組件編程方面Java相較于 C#卻有著不可治愈的硬傷。尤其對于從C++和VB背景過來的開發(fā)人員,C#在這方面有著不可抵擋的魅力和誘惑。

鑒于XML Web Services在下一代企業(yè)分布式計算中的地位,.NET平臺直接在IL中間語言中內(nèi)置了XML,SOAP、UDDI、WSDL等底層協(xié)議被構(gòu)建成了面向開發(fā)人員的組件;而Java是通過API集來支持Web服務(wù)。雖然這種局面的形成可能僅僅是因為時間問題,但從技術(shù)角度來將,C#無疑比Java更新,畢竟C#出現(xiàn)在Java之后。

當(dāng)然“語言選擇乃藝術(shù)而非技術(shù)問題”,開發(fā)人員選擇哪種編程語言往往會受到眾多因素的影響。各自的后端平臺(C# for .NET, Java for J2EE)、編程框架的支持、各種語言相關(guān)工具的實(shí)現(xiàn)、現(xiàn)有的系統(tǒng)基礎(chǔ)等都會對編程語言的發(fā)展產(chǎn)生相當(dāng)?shù)挠绊憽?以上介紹C#和Java詳細(xì)描述。

【編輯推薦】

  1. C#線程同步詳細(xì)分析
  2. C#探討木馬程序淺談
  3. C# Pop3Connection類簡介
  4. C#數(shù)據(jù)類型簡單介紹
  5. C#計算素數(shù)序列淺談
責(zé)任編輯:佚名 來源: 博客園
相關(guān)推薦

2009-08-10 16:40:03

C#索引器

2009-08-26 15:53:48

C#擴(kuò)展方法

2009-08-27 15:17:40

C# const變量

2009-09-03 17:59:18

C#調(diào)用事件

2009-09-14 13:14:49

LINQ序列

2009-09-14 14:58:52

LINQ to XML

2009-09-14 16:33:55

LINQ To XML

2009-09-24 16:19:53

Hibernate應(yīng)用

2009-09-25 14:28:40

Hibernate S

2009-11-18 11:14:49

2010-02-05 16:58:18

Android服務(wù)

2009-09-08 11:09:39

LINQ數(shù)據(jù)源

2010-04-09 17:45:06

Oracle索引

2009-10-15 14:59:45

網(wǎng)絡(luò)布線光纖技術(shù)

2009-09-25 11:04:32

Hibernate3實(shí)

2009-10-10 10:04:50

RHEL合法使用

2009-09-07 13:02:52

Java和C#線程

2011-11-02 09:29:42

存儲虛擬化虛擬化

2009-10-16 11:02:40

VB調(diào)用動態(tài)連接庫

2009-10-12 12:54:58

VB.NET聲明API
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 午夜私人影院在线观看 | 日本不卡一区 | 日韩中文一区 | 一区二区三区视频在线免费观看 | 欧美日韩专区 | 久久久久久久久国产成人免费 | 操人视频在线观看 | 国产日韩欧美在线观看 | 国产日韩欧美在线 | 毛片一级片 | 日日骚网 | 日韩成人国产 | 国产色在线| 一本一道久久a久久精品蜜桃 | 欧美一级视频免费看 | 日韩中文一区 | 日韩视频精品 | 亚洲精品99 | 久久精品国产一区 | 高清一区二区三区 | 欧美一级www片免费观看 | 日韩欧美精品在线 | 瑟瑟免费视频 | 日韩免 | 在线观看精品 | 九九综合| 天天av天天好逼 | 国产精品视频一区二区三区不卡 | 午夜影院在线观看免费 | 一区二区三区国产精品 | 在线成人福利 | 夜夜草导航 | 男女下面一进一出网站 | 成人免费一区二区三区视频网站 | 久久久91精品国产一区二区三区 | 欧美极品一区二区 | 国产一区不卡 | 国产欧美日韩久久久 | 涩涩鲁亚洲精品一区二区 | 成人精品| 国产香蕉视频 |