+运算符在Java中的println()方法中的String和char值

Far*_*que -3 java

我在下面有以下代码段及其输出:

System.out.println("A");            // output A
System.out.println("B");            // output B
System.out.println("A" + "B");      // output AB 
Run Code Online (Sandbox Code Playgroud)

烧焦

System.out.println('A');            // output A
System.out.println('B');            // output B
System.out.println('A' + 'B');      // output 131 
Run Code Online (Sandbox Code Playgroud)

将char的输出打印为单个char值的字符串的原因是什么?使用整数if +运算符?我在这篇文章中找不到这个答案.字符串联形成一个字符串给出了不同的结果

Jon*_*eet 5

将char的输出打印为单个char值的字符串的原因是什么?使用整数if +运算符?

没有+运算符char,因此两个操作数都被提升为int(值65和66,分别以char转换为的正常方式int),结果也是int如此.而在您的字符串示例中,它使用字符串连接运算符.

基本上,这是正常的运算符重载分辨率,使用JLS 15.18中+描述的运算符.