我将重新发布您的代码,如下所示:
public class Hey {
public static void main(String[] args) {
char m = '我';//25105
char k = '你';//20320
String a = "与";
String l = m + k + a;//m + k -> 45425
System.out.println(l);//45425与
}
}
因为 Java 中的 char 本质上是 int 类型,在您的示例中:
m + k + a
运行时会从左到右进行运算,先计算m+k,m和k都是char类型。 运算会根据int类型进行计算,并将结果与a类型进行拼接(此时发生+符号运算符重载)。
根据编码,汉字的编码如下:
可以看到,字符“我”的编码形式(十进制)为25105,字符“你”的编码形式(十进制)为20320。按照int类型进行运算,结果int类型是45425,这个结果和a类型进行+运算的结果是一样的。 由于运算符重载,结果是45425和a串联而成的字符串形式,即“45425 and”。
如何查询汉字的编码形式(Forms),使用这个网站查询:
//.html
我的其他回答:
另外,如果你有兴趣,欢迎加入我的Java EE自学群
如果您觉得我的回答对您有帮助,可以考虑微信打赏: