新作業.Net和Java都要做,早期也做過一段Java的專案,但沒有系統的深入學習過,一直覺得這兩門語言估計是最相近的兩門語言了,好多代碼可以說直接拷過來都不帶報錯的,但仔細推敲還是有很多的不同,
1. 基本資料型別
Java語言提供了八種基本型別,六種數字型別(四個整數型,兩個浮點型),一種字符型別,還有一種布爾型,
C#提供的型別更細一些,
Java沒有基本的decimal型別,有個BigDecimal型別,是一個繼承于Number類的類,
| C# | Java | |
|---|---|---|
| 布爾型 | bool | boolean |
| 字符型 | char | char |
| 整形 | byte | byte |
| sbyte | ||
| int | int | |
| uint | ||
| nuint | ||
| long | long | |
| unlong | ||
| short | short | |
| unshort | ||
| 浮點型 | decimal | BigDecimal* |
| double | double | |
| float | float |
2.結構型別
C#提供像C語言一樣的結構體(struct )型別,Java沒有此型別,一般通過類實作類似功能,
3.列舉型別
二者都有列舉型別enum,
C#的列舉型別時值型別,默認情況下,列舉成員的關聯常數值為型別 int;它們從零開始,并按定義文本順序遞增 1, 可以顯式指定任何其他整數數值型別作為列舉型別的基礎型別,
enum HttpCode : ushort
{
OK = 0,
BadRequest= 400
}
Java的列舉型別是通過類實作的,所以可以為其添加屬性和方法等,
public class Simple {
enum HttpCode
{
OK("請求成功!", 200),
BadRequest("請求失敗!", 400);
// 成員變數
private String message;
private int code;
// 構造方法
private HttpCode(String message, int code) {
this.message = message;
this.code = code;
}
// 覆寫方法
@Override
public String toString() {
return this.message;
}
}
public static void main(String[] args) {
System.out.println(HttpCode.BadRequest.toString());
}
}
Java的列舉成員都是通過 Class 在內部實作的,且所有的列舉值都是 public static final 的,
上面的列舉類代碼可以理解為:
public final class HttpCode extends Enum{
public static final HttpCode OK;
public static final HttpCode BadRequest;
}
4.元組型別
C#7.0之后提供類元組型別,Java中JDK原生不支持元組,但有框架javatuples支持元祖,
5.可空值型別與包裝型別
C#為值型別提供了對應的可空值型別,例如int->int?,本質是通過結構體實作的,
Java為值型別提供了對應的包裝型別,例如int->Integer,包裝型別為參考型別,
6.Object、String
二者都以Object型別作為所有型別的基類,都提供了String類(以及StringBuilder),注意首字母大小寫不同,
☆☆☆ 共同學習,歡迎拍磚;轉載請注明出處,謝謝,歡迎關注我的公眾號:閑聊編程,☆☆☆
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/314673.html
標籤:.NET技术
