當前位置:才華齋>計算機>java語言>

Java和.NET開發語言的不同點

java語言 閱讀(7.96K)

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

Java和.NET開發語言的不同點
  Java和開發語言的不同點

1、Java包的名字是和物理檔案位置一一對應的, C#裡名稱空間可以隨便寫,並且編譯出來的.程式集也可以隨便更改,可以不和名稱空間保持一致,程式集和JAVA裡單獨打出來的jar包是差不多的意思。

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

3、如果找到一個JAR包,Java檢視新jar包的方法欄位描述,需要有單獨的對應jar包的doc文件,才能看到介面呼叫引數說明,否則看起來不直觀,但是如果有原始碼打出來的jar包,除錯的時候可以方便的看到該包的原始碼。裡只要有了dll檔案,就能方便的看到方法元資料呼叫引數,但是看到引數詳細說明,還是需要對應dll的xml文件。

4、對於WEB開發,JAVA裡Filter,Servlet,Listener是很常用的,Java裡的Filter可以用裡的module來實現一些功能,但Filter可以制定作用請求範圍,module是全域性控制的;Servlet相當於一個具體的handler,可以對制定請求進行處理,Listerner可以用裡的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#只有靜態建構函式的說法。