熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Java核心技術 >> 正文

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

2013-11-23 19:36:57  來源: Java核心技術 
    我是用VS和VS開發NET程序通過MyEclipse開發JAVA程序下面從IDE語言插件的不同點來做下簡單的說明但由於經驗知識還有限本篇文章只能從比較表面的以及自己常用的功能點來說明我所看到的不同點
   
    IDE的不同點
   
    給我的第一感覺就是MyEclipse在開發過程編寫查看代碼也非常便利甚至有很多VS沒有的功能下面列舉自己現在遇到的一些不同點
   
    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沒有這樣的功能
   
    調試代碼的時候VS就表現出比MyEclipse更強大了它們都可以在斷點處修改已經存在的變量的值但是VS在監控臨時變量框裡輸入變量時同樣可以智能提示自己寫的代碼而MyEclipse不能自動提醒並且VS可以拖動斷點到已經運行的代碼這個功能在調試問題時是非常強大和有用的但是MyEclipse不能拖動斷點
   
    MyEclipse雙擊代碼編輯框裡文件的Tab欄就可以切換全屏顯示代碼編輯塊和多框顯示這點比VS更方便一點Package Explorer框的旁邊有個Link Vith Editor按鈕可以快速定位文件在包裡的位置這個也比較方便但是VS裡一個文件右鍵後可以直接選擇打開對應的物理文件目錄在MyEclipse裡沒有這個功能
   
    JAVA項目是通過導入方式打開不是通過像VS裡雙擊sln或csproj文件就可以打開整個工程但是打開一次過後下次再打開MyEclipse它都會自動加載已經打開過的項目而VS是每次只能打開一個解決方案解決方案裡包括不同項目如果新增了解決方案下次就需要單獨打開了


   
    語言的不同點
   
    Java語言和C#語言非常相似雖然內部會有很多區別提供的API也不一樣但開發一個具體功能點的思路常用的都差不多由於對比較新的技術和特性開發過程中接觸不多我所遇到的不同點包括
   
    JAVA裡默認修飾符是包內可見(對應同一個文件夾目錄而不是項目大jar包下)的protected的變量和方法都是包內和子類可見的NET裡是只有自己和子類可見NET裡類的默認修飾符是Internal程序集內可訪問方法和字段默認為private的和JAVA默認包內可見不一樣
   
    如果找到一個JAR包Java查看新jar包的方法字段描述需要有單獨的對應jar包的doc文檔才能看到接口調用參數說明否則看起來不直觀但是如果有源碼打出來的jar包調試的時候可以方便的看到該包的源代碼NET裡只要有了dll文件就能方便的看到方法元數據調用參數但是看到參數詳細說明還是需要對應dll的xml文檔
   
    Byte類型的數字范圍不一樣Java裡是NET是一般需要互相交換數據和處理都是轉換成進制然後取bit的後個bit這樣它們的值都是一樣的方便同步加密解密或相關處理
   
    JAVA裡文件保存後默認自動編譯但是這個也得益於它把每個java文件編譯成一個class文件NET裡需要單獨每次執行編譯項目因為它一個項目一個dll文件如果保存其中一個cs文件都執行編譯則工作量太大影響開發速度
   
    Java裡的Final關鍵字當給一個字段時表示該字段不能修改構造函數裡都不能修改這個和C#的const有點像但是const默認是static的和C#的readonly也比較像但是readonly可以在構造函數裡修改當它作為一個方法的修飾符時它類試c#的sealed類不能重寫它
   
    Java包的名字是和物理文件位置一一對應的C#裡命名空間可以隨便寫並且編譯出來的程序集也可以隨便更改可以不和命名空間保持一致程序集和JAVA裡單獨打出來的jar包是差不多的意思
   
    Java裡推薦用getset方法來對內部變量賦值和獲取值NET裡可以用字段getset獲取並且vs後可以直接get;set;的方式借助語法糖編譯器後會自動生成等價的getset內部字段
   
    插件的不同點
   
    MyEclipse自身就是一個插件裡面集成了大量開源框架而VS是微軟一個大一統的IDE要用其他開源插件需要單獨下載和單獨配置
   
    Java裡實現webservice的方法很多除了javaxjws包裡只有的JAXWSjava webservice規范自帶版本還有axisxfire的webservice開源實現axis包括axisaxisxfire已更名為cxf了但是各種實現方法各異在和NET發布的webservice互相調用時經常遇到一些問題總體來說Java對wsdl的格式要求更嚴格
   
    上面都是自己最近開發過程中根據自己遇到的問題分析和整理的結果涉及的面有限需要自己以後不斷完善相關技術點並且整理和理解的結果也可能不完全准確如有問題請指正


From:http://tw.wingwit.com/Article/program/Java/hx/201311/27191.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.