char的初始化
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变量后,输出字符编码表中对应的字符。
转载于