java VS c#,異同點


  因工作安排,后期需要維護一個java項目。所以稍微熟悉下java,開此篇記錄下java與c#的區別點,方便增強自己學習效果。肯定是不全的,可能是有錯的,歡迎批評指正。

一、關鍵字

描述 C# Java 備注
引用其他類庫 using import  
命名空間 namespace package 聲明一組相關對象的作用域。
定義常量 const final  
訪問控制修飾符 internal default java默認為default,c#默認為private
表示父類 base super 用於從派生類中訪問父類的成員。
繼承類 : extend  
繼承接口 : implements  
不允許繼承 sealed final 防止類派生;防止方法和屬性在派生類中被重寫。
類型判斷 is instanceof 評估對象與給定類型是否兼容。 
循環遍歷 foreach() for(type element: array) 例:for(int x : numbers ){}
lock synchronized  
可變數量參數 params T T... 指定采用可變數目的參數的方法參數。
外部實現的方法 extern native 聲明外部實現的方法。
布爾值 bool boolean  

 

 

 

 


 

 

 

 

 

 

 

 

 

二、代碼結構

  • java中,如果一個類定義在某個包中,那么package語句應該在源文件的首行。package中內容不用花括號包起來,范圍適用於全文見。
  • java中,如果源文件包含import語句,那么應該放在package語句和類定義之間。如果沒有package語句,那么import語句應該在源文件中最前面。
  • java中,一個源文件中只能有一個public類。
  • java中,一個源文件可以有多個非public類。
  • java中,源文件的名稱應該和public類的類名保持一致。
  • java中,調用父類構造函數,需要在子類構造函數中顯示調用super(params);C#中在子類構造函數聲明后加上:base(param)來實現。

三、編碼風格

  • java中,方法名使用帕斯卡命名法,首字母小寫。
  • java中,左花括號不換行。

四、其他

  • 在 Java 中,int類型前綴0表示8進制;在C#中忽略0,前綴0x表示8進制。
  • 在 Java 中,標識符中允許有美元符($),且允許作為首字符;c#中是@字符。(都是字母數字下划線加前文特殊符號)
  • 在 Java 中,重寫父類方法不需父類方法標示為virtual。沒有覆蓋概念。
  • Java 不支持隱式類型的局部變量(C# 支持 var 關鍵字)。
  • 在 Java 中,可以僅按值傳遞參數,而在 C# 中,你可以按引用以及值進行傳遞。 (C# 提供 ref 和 out關鍵字,用於按引用傳遞參數;Java 中無此類等效項)。
  • Java 不支持預處理器指令,如 #define
  • Java 不支持無符號整數類型,而 C# 提供無符號整數類型,如 ulonguintushort 和 byte
  • Java 不支持運算符重載;在 C# 中,可以重載運算符和轉換。
  • 在 Java switch 語句中,代碼可以貫穿到下一個 switch 部分,但在 C# 中,每個 switch 部分的結尾必須終止 swith(每個部分的結尾必須以 break 語句結束)。
  • 在 Java 中,指定由帶 throws 關鍵字的方法引發的異常,但 C# 沒有檢查異常的概念 – throws 關鍵字在 C# 中不受支持。
  • Java 不支持語言集成查詢 (LINQ)。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM