int
类型是一个32位的数据类型,因为其位有符号数,所以,其取值范围为:-2^31 至 2^31 - 1。而char
为16位的数据,为无符号数,其范围为:0 至 2 ^ 16 -1,即 0 - 65535。而无论是什么字符,在计算机中,其实也是以数字(本质为一个二进制数)的形式存储的,因此,在java中,无论是一个字符,还是一个字符型变量,实则也是一个数字,所以,可以直接将一个(不超过char的范围的)数字赋值给一个char变量,即可输出其结果:
char c1 = 97;
System.out.println(c1);
结果:
a
同样的,我们可以将一个字符赋值给一个int变量,因为字符也是一个数字嘛
char c2 = 'a' + 1;
int num2 = 'a' + 1;
System.out.println("c2: " + c2);
System.out.println("num2: " + num2);
System.out.println("(char) num2: " + (char) num2);
c2: b
num2: 98
(char) num2: b
ps:要注意char的大小过界的问题,我们可以直接以一个数字赋给一个char型的变量,但是,若我们赋的值的大小大于了65536,会发生报错。