關於Java和.Net,持續更新中

平臺比較(不說跨平臺,我正在學習.NET,沒有測試平臺相關性質)
 JAVA平臺包含:JVM、JAVA語言和JAVA運行庫
 .NET平臺包含:CLR,實現語言和CFL。
 Java只能使用一種語言實現,但是.NET可以使用不同的語言實現。但是.NET使用不同語言實現的條件是這些語言(如果需要交叉調用)則需要限制在最小的CLR子集(CLS)之內,這樣限制了不少的功能。而且爲了照顧VB.NET這樣的不區分大小寫的語言,CLS中的大小寫也是不敏感了(原生語言中還是敏感的)。
 Java程序使用Java虛擬機運行,.NET程序使用內嵌的操作系統進程實現。JAVA虛擬機因爲跨平臺關係,不太可能使用核心態運行,但是.NET由於是親生的,想怎麼寵都可以。
 .NET執行的時候生成的代碼是本地代碼,但是Java執行的時候生成的是中間代碼(JVM規範),由Java虛擬機執行中間代碼和本地代碼之間的轉換,就這點而言JAVA速度慢一點。.NET和Java都支持“按需調用”,也就是在用到某個類型(組件)的時候纔去分析這個組件的引用並加載到虛擬機中。JAVA對於引用是生成引用表,類似VTable,這樣第二此使用的時候直接使用這個VTable就可以找到“中間代碼”;.NET則直接生成類型的本地代碼,並修改PE文件的入口指向這個“本地代碼”(好像又慢一點)。
 Java提出了很多相關部署的東西,都是和Jar文件相關的,這樣在部署的時候只需要一個文件就搞定(理想情況),其資源和class文件可以合在一起打包。更有甚者,其web Application的配置信息也可以一起打包。.NET提出了一個程序集的概念,和jar文件的初衷是相同的,但是其版本控制十分嚴格——看來m$是被Dell Hell給搞鬱悶了——但是其文件不是在一個文件包裏面(這個部分沒有深究)
 
 待續............
 

發佈了35 篇原創文章 · 獲贊 1 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章