char的一些小问题

一句话,char,byte,short进行计算操作的时候,会先将它们转换成int类型,然后再进行计算。
所以比如
byte b1 = 3,b2 = 5;
byte b3 = b1 + b2;
会报错的,因为b1 + b2的结果是int类型,将这个结果赋值给byte类型的b3,需要进行强制转换。
所以正确的表达是:
byte b3 = (byte)(b1 + b2);

另外,比如System.out.println('2'+'2');,
这个语句的输出结果是100,因为char类型的2对应的数字是50.

public class Main {
public static void main(String[] args) {
char c1 = 65;
//c1 = c1+32; //报错,
//因为c1是char类型2位,
//32是int类型8位,所以c1+32最终的计算结果会是int类型,/
//但是c1定义是char类型,所以会出错。
//如果改成(char)(c1+32)就会没有问题

//c1 =(char)(c1+32);没有问题
c1 += 32;//也没问题,但是为什么呢
System.out.println(c1);
}

}

爱生活,爱码字

我是匆匆、我曾喂自己半年酒。

好好生活吧,有缘或许相见。

原文地址:https://www.cnblogs.com/ccoonngg/p/14804376.html