.NET中常見的數據類型分類分別是值類型和引用類型java
值類型包括(基元類型、struct、枚舉)數組
引用類型包括(類、類、數組、接口、指針)app
Java分爲,基本類型和類ui
C# | Java | |||
值類型 | 基元類型 | 基元數據類型 | ||
struct | 無此概念 | |||
枚舉 | 是引用類型 | |||
引用類型 | 類 | 類 | ||
數組 | 數組 | |||
接口 | 接口 | |||
指針 | 無此概念 | 在C#中須要打開unsafe纔可以使用 |
有點聯繫,可是區別仍是很大的,對於Java基本類型只有8種,4種整型(int short long byte),2種浮點(float,double),1種字符(char),一種布爾(boolean)編碼
若是非要跟.NET對應,就看下面這張表吧spa
Java 基本類型 | C#基元數據類型 | 取值範圍 | |
整型 | int | int | |
short | short | ||
long | long | ||
- | byte | 不一樣!!! | |
byte | sbyte | 不一樣!!! | |
- | uint | ||
- | ushort | ||
- | ulong | ||
浮點 | float | float | |
double | double | ||
字符 | char | char | |
布爾 | boolean | bool |
除去Java缺乏的一部分類型(老實說,這些數據這麼多年來在.NET裏邊也沒有用到過),要注意的就是java的byte跟C#的byte取值範圍不一樣指針
java的byte是從-128到127code
.NET的byte是0到255blog
看下面兩個String轉byte的例子接口
// C# 代碼 byte[] bytes = System.Text.Encoding.UTF8.GetBytes("小墨123"); Console.WriteLine(String.Join(",", bytes)); // 輸出 229,176,143,229,162,168,49,50,51 Console.ReadLine();
// Java代碼 byte[] bytes = "小墨123".getBytes("UTF8"); StringBuilder b = new StringBuilder(); for (byte item : bytes) { b.append(item).append(","); } System.out.println(b.toString()); // 輸出爲 -27,-80,-113,-27,-94,-88,49,50,51,
一樣的字符串,一樣UFT8編碼,可是轉化的byte[]數組卻不一樣