Java和.NET在開發中的不一樣盤點

我是用VS2008和VS2010開發。NET程序,經過MyEclipse8.5開發JAVA程序,下面從IDE、語言、插件的不一樣點來作下簡單的說明。但因爲經驗知識還有限,本篇文章只能從比較表面的以及本身經常使用的功能點來講明我所看到的不一樣點。java

  IDE的不一樣點:web

  給個人第一感受就是MyEclipse在開發過程編寫查看代碼也很是便利,甚至有不少VS沒有的功能,下面列舉本身如今遇到的一些不一樣點:c#

  一、MyEclipse沒有像VS裏的#region,#endregion同樣的代碼段區域,在一個方法或類裏,能夠#region 功能點…#endregion這樣把代碼片斷摺疊起來,MyEclipse除非用其餘一些插件才能達到這個效果。框架

  二、MyEclipse導入新項目,若是JRE版本不同,須要選擇使用本地JRE版本,項目右鍵->Build Path->Configure Build Path->Libraries->Java Build Path裏修改JRE版本,但有時還會出現編譯問題,緣由是沒有選擇編譯的JDK版本,項目右鍵->Build Path->Configure Build Path->Java Compiler裏修改Compiler compliance level.對於VS,高版本代碼打開低版本代碼,會自動升級,或者手工選擇在。NET哪一個版本下編譯,會比較方便。函數

  三、對於一個大括號或小括號的代碼段,雙擊該符號後面,則自動選中括號內部的代碼段,這個能夠方便查看一個代碼段,VS沒有這樣的功能。ui

  四、調試代碼的時候,VS就表現出比MyEclipse更強大了,它們均可以在斷點處修改已經存在的變量的值,可是VS在監控臨時變量框裏輸入變量時一樣能夠智能提示本身寫的代碼,而MyEclipse不能自動提醒,而且VS能夠拖動斷點到已經運行的代碼,這個功能在調試問題時是很是強大和有用的,可是MyEclipse不能拖動斷點。加密

  五、MyEclipse雙擊代碼編輯框裏文件的Tab欄,就能夠切換全屏顯示代碼編輯塊和多框顯示,這點比VS更方便一點,Package Explorer框的旁邊有個Link Vith Editor按鈕,能夠快速定位文件在包裏的位置,這個也比較方便,可是VS裏一個文件右鍵後能夠直接選擇打開對應的物理文件目錄,在MyEclipse裏沒有這個功能。插件

  六、JAVA項目是經過導入方式打開,不是經過像VS裏雙擊。sln或。csproj文件就能夠打開整個工程。可是打開一次事後,下次再打開MyEclipse,它都會自動加載已經打開過的項目。而VS是每次只能打開一個解決方案,解決方案裏包括不一樣項目。若是新增瞭解決方案,下次就須要單獨打開了。調試

  語言的不一樣點:xml

  Java語言和C#語言很是類似,雖然內部會有不少區別,提供的API也不同,但開發一個具體功能點的思路經常使用的都差很少,因爲對比較新的技術和特性開發過程當中接觸很少,我所遇到的不一樣點包括:

  一、JAVA裏默認修飾符是包內可見(對應同一個文件夾目錄,而不是項目大jar包下)的,protected的變量和方法都是包內和子類可見的,.NET裏是隻有本身和子類可見NET裏類的默認修飾符是Internal,程序集內可訪問。方法和字段默認爲private的,和JAVA默認包內可見不同。

  二、若是找到一個JAR包,Java查看新jar包的方法字段描述,須要有單獨的對應jar包的doc文檔,才能看到接口調用參數說明,不然看起來不直觀,可是若是有源碼打出來的jar包,調試的時候能夠方便的看到該包的源代碼NET裏只要有了dll文件,就能方便的看到方法元數據調用參數,可是看到參數詳細說明,仍是須要對應dll的xml文檔。

  三、Byte類型的數字範圍不同,Java裏是-128到127,.NET是0-255,通常須要互相交換數據和處理都是轉換成16進制,而後取8bit的後2個bit,這樣它們的值都是同樣的,方便同步加密解密或相關處理

  四、JAVA裏文件保存後默認自動編譯,可是這個也得益於它把每一個java文件編譯成一個class文件,.NET裏須要單獨每次執行編譯項目,由於它一個項目一個dll文件,若是保存其中一個。cs文件都執行編譯,則工做量太大影響開發速度。

  五、Java裏的Final關鍵字,當給一個字段時,表示該字段不能修改,構造函數裏都不能修改,這個和C#的const有點像,可是const默認是static的。和C#的readonly也比較像,可是readonly能夠在構造函數裏修改。當它做爲一個方法的修飾符時,它類試c#的sealed類,不能重寫它。

  六、Java包的名字是和物理文件位置一一對應的,C#裏命名空間能夠隨便寫,而且編譯出來的程序集也能夠隨便更改,能夠不和命名空間保持一致,程序集和JAVA裏單獨打出來的jar包是差很少的意思。

  七、Java裏推薦用get,set方法來對內部變量賦值和獲取值,.NET裏能夠用字段get,set獲取,而且vs2008後能夠直接get;set;的方式,藉助語法糖,編譯器後會自動生成等價的get,set內部字段。

  插件的不一樣點:

  一、MyEclipse自身就是一個插件,裏面集成了大量開源框架,而VS是微軟一個大一統的IDE,要用其餘開源插件,須要單獨下載和單獨配置。www.2cto.com

  二、Java裏實現webservice的方法不少,除了javax.jws包裏只有的JAX-WS,java webservice規範自帶版本,還有axis,xfire的webservice開源實現,axis包括axis1,axis2,xfire已改名爲cxf了,可是各類實現方法各異,在和。NET發佈的webservice互相調用時,常常遇到一些問題,整體來講Java對wsdl的格式要求更嚴格。

相關文章
相關標籤/搜索