char是Java中的保留字,與別的語言不同的是,char在Java中是16位的,因爲Java用的是Unicode。不過8位的ASCII碼包含在Unicode中,是從0~127的。
但是English,Spanish,German, French根本不需要這麼表示,所以它們其實採用ASCII碼會更高效。這中間就存在一個權衡問題。
因爲char是16位的,採取的Unicode的編碼方式,所以char就有以下的初始化方式:
//字符,可以是漢字,因爲是Unicode編碼
char c = 'c';
//可以用整數賦值
char c = 十進制數,八進制數,十六進制數等等;
//用字符的編碼值來初始化
char c = '\u數字';
關於char佔幾個字節的問題
1.“字節”是byte,“位”是bit ;
2.1 byte = 8 bit ;
char 在Java中是2個字節。Java採用unicode,2個字節(16位)來表示一個字符。
char類型賦值
char a = 'a'; //任意單個字符,加單引號。
char a = '中';//任意單箇中文字,加單引號。
char a = 111;//整數。0~65535。十進制、八進制、十六進制均可。輸出字符編碼表中對應的字符。
注:char只能放單個字符。
char運算
char類型是可以運算的因爲char在ASCII等字符編碼表中有對應的數值。
在Java中,對char類型字符運行時,直接當做ASCII表對應的整數來對待。
示例:
char m = 'a';
char m = 'a' + 'b';//char類型相加,提升爲int類型,輸出對應的字符。
int m = 'a' + 'b';//結果是195。//195沒有超出int範圍,直接輸出195。
char m = 'a' + b;//會報錯。//因爲b是一個賦值的變量。
char m = 197;//輸出字符編碼表中對應的字符。
char m = '197';//會報錯。//因爲有單引號,表示是字符,只允許放單個字符。
char m = 'a' + 1;//輸出結果是b。//提升爲int,計算結果98對應的字符是b。
總結
用單引號''標識,只能放單個字符。
char + char,char + int——類型均提升爲int,附值char變量後,輸出字符編碼表中對應的字符。