JAVA認證

當前位置 /首頁/IT認證/JAVA認證/列表

JAVA和.NET開發過程中的區別

眾所周知,java與是不同的,那麼兩者到底有什麼區別呢?下面跟yjbys小編一起來看看吧!

JAVA和.NET開發過程中的區別

Jave技術應用特點:Java開發者使用最多的JDK版本是JDK1.6和JDK1.7;使用最多的伺服器是Tomcat,最常用的開發工具是Eclipse;

技術應用特點:開發者對平臺最滿意是其語言和框架設施部分,開發人員最關注的技術分別是VC、ebPages、WindowsAzure相關的雲端計算技術。

  說話的分歧點:

Java說話和C#說話很是相似,雖然內部會有良多區別,供給的API也紛歧樣,但開發一個具體功能點的思緒常用的都差不多,因為對鬥勁新的手藝和特徵開發過程中接觸不多,我所碰著的分歧點蒐羅:

1、Java包的名字是和物理檔案位置一一對應的, C#琅縵泓名空間可以隨便寫,而且編譯出來的軌範集也可以隨便更改,可以不和名稱空間連結一致,軌範集和JAVA裡零丁打出來的jar包是差不多的意思。

2、JAVA的一個檔案只能有一個公共類,而C#可以多個公共類在一個檔案裡。

3、如不美觀找到一個JAR包,Java檢視新jar包的體例欄位描述,需要有零丁的對應jar包的doc文件,才能看到介面挪用引數聲名,否則看起來不直不美觀,可是如不美觀有原始碼打出來的jar包,除錯的時辰可以便利的看到該包的原始碼NET裡只要有了dll檔案,就能便利的`看到體例元資料挪用引數,可是看接事數具體聲名,仍是需要對應dll的xml文件。

4、對於WEB開發,JAVA裡Filter,Servlet,Listener是很常用的,Java裡的Filter可以用。NET裡的module來實現一些功能,但Filter可以擬定浸染請求規模,module是全域性節制的;Servlet相當於一個具體的handler,可以對擬定請求進行措置,Listerner可以用。NET裡的Application_Start裡來完成一些功能,可是JAVA裡集成了部門預設Listerner,它在WEB應用啟動的時辰就瞥綬執行。它們的具體執行流程為:WEB啟動時,Listener的ContextInitialized體例->所有Filter的Init(不管filter-mapping的值)->所有設定裝備擺設了load-on-startup大於等於0的Servlet的init體例(不管servlet-mapping的值),具體請求為:具體Servlet的init(只執行一次)->Filter doFilter(請求設定裝備擺設的filter-mapping的value)->Servlet service; 最後網站釋放的執行挨次為:Filter destroy-》Listener contextDestroyed.

5、Java裡的Final關頭字,當給一個欄位時,暗示該欄位不能改削,機關函式裡都不能改削,這個和C#的const有點像,可是const預設是static的。和C#的readonly也鬥勁像,可是readonly可以在機關函式裡改削。當它作為一個體例的潤色符時,它類試c#的sealed類,不能重寫它。

6、Java琅縵慊有靜態機關函式,如不美觀要實現一些初始化工作,需要用靜態程式碼塊,static{…},琅縵沔輸入內容即可,C#只有靜態機關函式的說法。

7、JAVA中有常量池概念,是和堆、棧紛歧樣的區域,雖然和C#一樣String都有字串駐留機制,可是和。NET的又紛歧樣了。是以java裡字串鬥勁最好用equals鬥勁,否則可能出問題。好比"a"+"b"字串在常量池裡,如不美觀它們和"ab"鬥勁將相等,可是"a"+b,b是一個變數,就將放到堆裡了,如不美觀還用=="ab"判定將返回false,所以JAVA裡儘量用equals來判定字串,可是。NET裡不涉及這個問題,經由計較的字串,==的結不美觀也灰忄等。

8、Java琅縵憧個檔案只要有Main體例進口,它都可以執行,而。NET裡需要專案型別改削為節制臺應用軌範,然後有一個Main體例才能作為一個執行的載體。

9、Byte型別的數字規模紛歧樣,Java裡是-128到127,是0-255,一般需要互訂交流資料和措置都是轉換成16進位制,然後取8bit的後2個bit,這樣它們的值都是一樣的,便利同步加密解密或相關措置

10、Java裡舉薦用get,set體例來對內部變數賦值和獲取值,裡可以用欄位get,set獲取,而且vs2008後可以直接get;set;的體例,藉助語法糖,編譯器後會自動生成等價的get,set內部欄位。

11、JAVA裡檔案保留後預設自動編譯,可是這個也得益於它把每個java檔案編譯成一個class檔案,裡需要零丁每次執行編譯專案,因為它一個專案一個dll檔案,如不美觀保留其一一個。cs檔案都執行編譯,則工作量太大影響開發速度。

12、Java裡List是一個介面,這個對在C#裡用慣了List集結的,new List已經會報錯了,而且它們的泛型也紛歧樣,C#是CLR層的泛型撐持,JAVA的泛型不是經由JVM撐持的,是以機能相對沒有晉升。

13、JAVA裡預設潤色符是包內可見(對應統一個資料夾目錄,而不是專案大jar包下)的, protected的變數?捉式都是包內和子類可見的,裡是隻有自己和子類可見NET裡類的預設潤色符是Internal,軌範集內可訪謁。體例和欄位預設為private的,和JAVA預設包內可見紛歧樣。

  外掛的分歧點:

1、MyEclipse自身就是一個外掛,琅縵沔集成了大量開源框架,而VS是微軟一個大一統的IDE,要用其他開源外掛,需要零丁下載和零丁設定裝備擺設。

2、Java誠懇現webservice的體例良多,除了包裡只有的JAX-WS,java webservice規範自帶版本,還有axis,xfire的webservice開源實現,axis蒐羅axis1,axis2,xfire已更名為cxf了,可是各類實現體例各異,在和。NET釋出的webservice互相挪用時,經常碰著一些問題,總體來說Java對wsdl的名目要求更嚴酷。

TAG標籤:JAVA NET #