最近初學C#,在這裏小結一下在網上找到的C#與Java的一些小異同
最重要的功能對比:
相同點:
繼承:C#與Java均是單繼承,可實現多個接口。
接口實現:C#與Java均是通過“interface”關鍵詞。
內存管理:均由運行時環境管理,使用垃圾收集器。
單一的公共基類:兩者均是Object
異常處理:均提供異常處理
封裝與可見性:無論是在C#還是Java中,都可以決定類成員是否可見。
多態性:C#和Java都支持某些形式的多態性機制。
不同點:
指針:C#支持,但只在很少使用的非安全模式下支持,通常以引用取代指針,Java則完全不支持,以引用取代之。
源代碼編譯後的形式:C#爲.NET中間語言(IL),Java爲字節碼(.class)。
默認包:C#中不存在默認的包,Java中java.lang包是默認的包。
最終類:C#中不存在final關鍵詞,但可以使用sealed關鍵詞使某個類不再被派生。
下表是一些更細化的異同對比:
項目 |
C# |
Java |
源文件拓展名 |
.cs |
.java |
包含的頂級公共類 |
可包含多個,文件名不需要與類名相同 |
只能包含一個,文件名必須與類名相同 |
頂級聲明 |
Namespace,允許一個文件出現多個命名 空間 |
Package,一個源文件中不能出現多個包 |
|
||
引用命名空間或包 |
Using |
Import |
數據類型與運算符 |
||
字符串類型 |
String |
String |
布爾類型 |
Bool |
boolean |
比較字符串的值 |
==,!=,Equals() |
Equals() |
隱式和顯示類型轉換 |
相似 |
|
基本運算符 |
相同,+,-,*,/,%,=,==,?:,++,--,!,&&,||,() |
|
分支語句 |
||
if |
相同 |
|
switch |
每個case尾部必須有break 可判斷字符串變量 |
不強制要求case中包含break 不能判斷字符串變量 |
數組 |
||
數組聲明 |
數組聲明中的方括號必須跟在數據類型 後面,且不能放在變量名稱之後 如:int[] array |
方括號可以放在變量名前或後 如:int[] array或int array[] |
初始化 |
可以同時指定數值長度和初值,但初值 的數目必須一致 如:int[] array = new int[3]{1,2,3} |
如果賦初值就不能指定長度,如果指定 長度就不能賦初值 如:int [] array = new[3]; int[] array = new int[]{1,2,3}; |
循環語句 |
||
For,while,do…while |
相同 |
|
foreach |
C#獨有 |
無 |
方法 |
||
程序入口 |
Main方法,M大寫返回類型爲void或int 命令行參數可選 |
main方法,m小寫返回類型爲void命令行 參數必須有 |
基本數據類型作參數 |
默認是值傳遞,用ret可以變成引用傳遞 |
值傳遞 |
上述文字與表格的內容對比僅是C#與Java間異同的很少以及很基本的一部分,C#與Java兩者從很大程度上有着許多的相同點,但儘管如此我們在使用兩種不同的語言時不難發現其實兩者也有很多的不同之處。掌握好這些差異所在並加以利用才能提高自身編寫程序效率。