我们今天的日志记录发生了奇怪的事情。 Printed是由逗号分隔的整数和长整数列表,如下面的代码:
public class Main {
public static void main(String[] args) throws InterruptedException {
long l = 10;
System.out.println(l + ';' + "text");
}
}
问题在于;从输出中消失了。
答案 0 :(得分:0)
这里的问题是由+运算符的过载引起的。它在操作String和long时以一种方式起作用,而在操作char和long时以另一种方式起作用。当其中一个操作数是一个字符串时,如果它不是一个字符串,它会尝试将另一个操作数强制转换为字符串,然后将它们连接起来。
但是当运算符是数字时,如int和long,+运算符作为普通的数学加运算符。因为char是一个数字而没有别的,';' + l被视为数值运算,因此问题中代码的输出是69text而不是10; text。