1) 基本架構
兩者的基本架構也差不多,Java:Java程序->Java字節碼->JVM(JIT).DotNet:C#程序->CIL(通用中間語言)->CLR(JIT).開始的時候Java的字節碼是解釋執行的,但現在使用的是即時編譯技術,C#作為後來者,從一開始就采用了這種技術.就軟件的執行架構來說是基本相同的;www.2cto.com
2)平台無關性:
Java和DotNet的設計的目標都是平台無關的,但由於微軟的操作系統是其主要贏利來源,所以.Net的平台無關性還是大打折扣.不過後面的Java也很難講,畢竟被oracle收購後,有些東西會改變.
3)開發語言統一:
在這方面Java的設計沒有包含這一目標,而dotNet從開始就致力於開發語言的統一,但這個不是java與C#的作為語言的區別,而是兩個體系的不同.Dotnet的這一優勢對於程序員來說還是比較有吸引力,至少減少了學習成本.但從另一個方面來說,Java和C#相互轉換的學習成本都不是很高.
4)基本數據類型:Java的預定義基本類型要少很多,C#的多很多,但這個不妨礙正常使用.當然,由於C#是基於.net框架,其類型也是通用數據類型.由於兩者都是為跨平台而設計的,因此其數據類型的長度並不是實際占用內存的大小.實際占用內存大小取決於虛擬機(JVM,CLR)和具體的機器類型(CPU字長).比如byte是8位,假設機器是32位的,你硬是將byte實現為8位,效率肯定會低些(每次取32位,然後通過計算分字節來取).
這段時間比較忙,先更新到此,以後繼續.