JAVA中基本类型有八种,其中char类型比较特殊。
首先看下基本类型的转换:
类型转换: char–>
自动转换:byte–>short–>int–>long–>float–>double
强制转换:①会损失精度,产生误差。(比如double转long时,小数点以后的数字全部舍弃。)
②容易超过取值范围。
一种字符类型(char):
char:16 位,是整数类型,用单引号括起来的 1 个字符(可以是一个中文字符),使用 Unicode 码代表字符,0~2^16-1(65535)。
注意事项:
不能为 0 个字符。
转义字符:\n 换行 \r 回车 \t Tab 字符 \” 双引号 \ 表示一个\
两字符 char 中间用“+”连接,内部先把字符转成 int 类型,再进行加法运 算,char 本质就是个数!二进制的,显示的时候,经过“处理”显示为字符。
特殊点1:char 本质就是个数!
(char b = ‘a’+18; //因为char本身在码表中可以用数字表示的,‘a’和18都可以看成是字符的字面量,两个字面量相加还是字符的字面量,即运算完之后还是char,所以输出s 。
//但是,下面定义就是错的了!
char a = ‘a’;
char b = a + 18; //会报编译错误,因为JAVA编译器将a当成一个字符变量来看待的(而不是字符的字面量),字符变量参与运算时会先转换成int类型,即最后的运算结果是int类型,而接收的是char类型,所以会提示Type mismatch: cannot convert from int to char。
)
特殊点2:char: 编码为0的字符
注意:不要打印输出编号为0的字符!!!!
Linux操作系统中输出编号为0的字符,以后将不再进行输出,后续字符不再输出。
测试:
//测试其他类型的数组元素初始化情况
double[] ary6 = new double[4];
System.out.println(ary6[0]);//0.0
byte[] ary7 = new byte[10];
System.out.println(ary7[0]); //0
boolean[] ary8 = new boolean[10];
System.out.println(ary8[0]); //false
//char数组元素自动初始为 编号为 0 的
// 字符。编号为0 的是一个特殊的控制
// 字符, 打印不可见!是字符串的结束
// 标记,如果输出 这个字符,Linux操作
// 系统认为输出结束,后续字符不再输出
char[] ary9 = new char[5];
System.out.print((int)ary9[0]);
System.out.println(“Hello”);
//如上案例说明, 不要打印输出编号为
// 0的字符!!!!