【Java】char类型详解

【Java】char类型详解

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变量后,输出字符编码表中对应的字符。

发表评论