Java 字符加法中的数值类型转换
两个 Java 字符相加时,如 'a' 'b',进行数值类型转换发生。与大多数其他编程语言不同,此加法不会导致 char 输出。
结果数据类型
根据 Java 语言规范,添加 char、shorts 的结果,或 bytes 是 int。此行为归因于 Java 的 二进制数字提升 规则,该规则规定在执行二进制算术运算时,两个操作数都会转换为 int 类型。
示例
考虑以下因素例如:
char x = 'a' + 'b'; // 결과는 int System.out.println(x); // 195를 출력
异常
但是,这些规则对于 = 等复合赋值运算符有一个例外。例如:
char x = 1, y = 2; x += y; // 합법적이며 결과는 char System.out.println(x); // 195를 출력하고 컴파일 오류가 발생하지 않음
在这种情况下,使用复合赋值运算符将加法结果(int)显式转换回 char。
确定结果类型
要确定一般结果的类型,可以将其转换为对象并查询其class:
System.out.println(((Object)('a' + 'b')).getClass()); // class java.lang.Integer를 출력
性能注意事项
请注意,Java 字节码没有针对较小数据类型算术的特定指令。相反,它使用基于 int 的指令(例如 iadd),并在必要时手动将高位字节清零。
字符串连接
如果目的是将字符连接为一个字符串,不以数字方式解释它们,在表达式中使用空字符串,因为添加一个字符和一个字符串会产生一个字符串。
以上是为什么添加两个 Java 字符会产生整数,而不是字符?的详细内容。更多信息请关注PHP中文网其他相关文章!