一:char的初始化
char是Java中的保留字,與別的語言不同的是,char在Java中是16位的,因為Java用的是Unicode。不過8位的ASCII碼包含在Unicode中,是從0~127的。
Java中使用Unicode的原因是,Java的Applet允許全世界范圍內(nèi)運行,那它就需要一種可以表述人類所有語言的字符編碼。Unicode。但是English,Spanish,German, French根本不需要這么表示,所以它們其實采用ASCII碼會更高效。這中間就存在一個權(quán)衡問題。
因為char是16位的,采取的Unicode的編碼方式,所以char就有以下的初始化方式:
char c='c'; //字符,可以是漢字,因為是Unicode編碼
char c=十進制數(shù),八進制數(shù),十六進制數(shù)等等; //可以用整數(shù)賦值
char c='\u數(shù)字'; //用字符的編碼值來初始化,如:char='\0',表示結(jié)束符,它的ascll碼是0,這句話的意思和 char c=0 是一個意思。
二:關(guān)于char占幾個字節(jié)的問題如下:
1:“字節(jié)”是byte,“位”是bit ;
2: 1 byte = 8 bit ;
char 在java中是2個字節(jié)。java采用unicode,2個字節(jié)(16位)來表示一個字符。
例子代碼如下:
運行結(jié)果:
bytes 大小:3
bytes1大?。?
java是用unicode來表示字符,'中'這個中文字符的unicode就是2個字節(jié)。
String.getBytes(encoding)方法是獲取指定編碼的byte數(shù)組表示,
通常gbk/gb2312是2個字節(jié),utf-8是3個字節(jié)。
如果不指定encoding則取系統(tǒng)默認的encoding。