字節(Byte)是計量單位,表示數據量多少,是計算機信息技術用於計量存儲容量的一種計量單位,通常情況下一字節等於八位。
字符(Character)計算機中使用的字母、數字、字和符號,比如'A'、'B'、'$'、'&'等。
一般在英文狀態下一個字母或字符占用一個字節,一個漢字用兩個字節表示。

字節與字符:
ASCII 碼中,一個英文字母(不分大小寫)為一個字節,一個中文漢字為兩個字節。
UTF-8 編碼中,一個英文字為一個字節,一個中文為三個字節。
Unicode 編碼中,一個英文為一個字節,一個中文為兩個字節。
符號:英文標點為一個字節,中文標點為兩個字節。例如:英文句號 . 占1個字節的大小,中文句號 。占2個字節的大小。
UTF-16 編碼中,一個英文字母字符或一個漢字字符存儲都需要 2 個字節(Unicode 擴展區的一些漢字存儲需要 4 個字節)。
UTF-32 編碼中,世界上任何字符的存儲都需要 4 個字節。
Byte & Char的區別
byte 是字節數據類型,是有符號型的,占1個字節;大小范圍為-128—127.
char 是字符數據類型,是無符號型的,占2字節(Unicode碼 );大小范圍是0—65535;
char 是一個16位二進制的Unicode字符,JAVA用char來表示一個字符 。
通過代碼示例來比較二者區別:
1、Char是無符號型的,可以表示一個整數,不能表示負數;而byte是有符號型的,可以表示-128—127 的數;如
char c = (char) -90; // char不能識別負數,必須強制轉換否則報錯,即使強制轉換之后,也無法識別 .
System.out.println(c);
byte d1 = 1;
byte d2 = -1;
byte d3 = 127; // 如果是byte d3 = 128;會報錯
byte d4 = -128; // 如果是byte d4 = -129;會報錯
System.out.println(d1);
System.out.println(d2);
System.out.println(d3);
System.out.println(d4);
輸出結果如下:

2、char可以表中文字符,byte不可以,如:
char e1 = '我', e2 = '你';
byte f= (byte) '他'; //必須強制轉換否則報錯
System.out.println(e1);
System.out.println(e2);
System.out.println(f);
輸出:

3、char、byte、int對於英文字符,可以相互轉化,如:
byte g = 'a'; //b對應ASCII是98
char h = (char) g;
char i = 85; //U對應ASCII是85
int j = 'h'; //h對應ASCII是104
System.out.println(g);
System.out.println(h);
System.out.println(i);
System.out.println(j);
輸出結果:

