程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA編程入門知識 >> J2SE與c#的幾點比較

J2SE與c#的幾點比較

編輯:JAVA編程入門知識

最近在學習j2se,經過了大約有二十天,把馬士兵老師的J2SE看完了,感覺這個老師太幽默了,聽他講課不會走神,時間的利用率特別高。真心的給馬士兵老師點個贊,然後再給讓我們學習這個視頻的米老師點兩個!(世界上不乏美好的事物,缺乏的是發現美好事物的眼睛!)。

廢話不多說了,看看在這個視頻中,到底講了那些內容。如下圖所示:

可能學習過任何一種面向對象語言(我學的c#,c#就是仿照Java,並對java進一步改良)的人,看到這個圖的第一感覺,都是這些東西基本上不是都學習過嗎,好像只有GUI,JDBC是個新的東東。

其實真的是差不多的,反正大部分人認為他們是相同的。下邊對他們進行一下比較!

在語法方面,兩者都擯棄了C++中函數及其參數的const修飾,宏代換,全局變量和全局函數等許多華而不實的地方。

在繼承方面,兩者都采用了更易於理解和建構的單根繼承和多接口實現的方案。在源代碼組織方面,都提出了聲明與實現於一體的更好的邏輯封裝。

在基本類型和單根繼承的對象之間的類型統一方面C#提出的box/unbox要比Java的包裝類顯得高明,效率也要好。

面向組件無疑是當代軟件開發的主流。C#對組件編程甚至到了"迷戀"的地步,這與6年前就出道的Java不可同日而語--當然這是時代問題。C#通過屬性,索引器,委派,事件,操作符重載,特征,版本等實現了其對組件編程的第一手的支持。雖然這些在Java中都可以通過方法,接口或者適配器來間接地實現,但軟件業的歷史告訴我們這無論對編程效率或者邏輯設計都是一種極大的損傷--高級語言首先面對的是人,而不是機器。除去這些語言層面的組件支持機制,.NET平台也為組件的配置,運行,管理等提供了一攬子解決方案,而為組件開發量身定做的Visual Studio.NET更是令人興奮,這都為C#的組件編程開辟了廣闊的天地。在其他技術方面Java的微弱劣勢尚且可以忽略不計,但在組件編程方面Java相較於C#卻有著不可治愈的硬傷。尤其對於從C++和Visual Basic背景過來的開發人員,C#在這方面有著不可抵擋的魅力和誘惑。

在跨平台方面,Java的支持和實現都是為人稱道的,雖然JVM的速度仍然讓人備感頭疼。而C#雖然在底層構造方面對移植性進行了充分的考慮,但至少目前還沒有成熟的,經過檢驗的產品。C#在跨平台方面似乎更熱衷於XML Web Services互操作,而不是跨平台編程。但C#通過其基礎語言構造(CLI)對二十多種主流語言的對象級的互操作支持,又極大地提升了C#的技術地位。和COM組件廉價地互操作也為C#掙到不少分數--保持一個兼容的體系對現代軟件工業非常重要,也是對廣大開發人員負責任的表現。

當然兩個語言的全面的技術品評絕非僅僅上述幾點簡單的羅列比較,其後端平台(C# for .NET, Java for J2EE),及其編程框架的支持,各語言相關工具的實現,現有的系統基礎等等都對程序設計語言的發展產生相當的影響。從純技術角度來講,C#無疑較Java更具競爭力。爭吵誰抄襲誰也沒有意義--技術的發展本來就是一個相互借鑒的過程。純技術較量也並不能決定這場論戰的勝負--如果非要一決雌雄的話。軟件界倒樂見競爭,經過市場錘煉的技術才能更好地為我們服務,讓我們拭目以待!

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved