使用“+” - 添加或连接

use of '+' - addition or concatenation

代码片段 1:

    Long [] a1 = {3L,4L,5L};
    System.out.print(a1[0].toString() + a1[1] + a1[2]);

//输出:345

代码片段 2:

    Long [] a1 = {3L,4L,5L};
    System.out.print(a1[0] + a1[1] + a1[2] + " ");

//输出:12

在片段 1 中,我们将“+”用作加法,因此我们有 3+4+5 = 12 然而,使用相同的逻辑,在片段 2 中,为什么我们没有 37 而不是 345

Java 计算表达式 从左到右

在你的情况下 System.out.print(a1[0] + a1[1] + a1[2] + " ") 它首先评估 "" 它是字符串然后它连接 ""a1[2] 值等等......这就是为什么你得到那个输出 345 它不是加法,它是字符串的连接。

传递给 print 的表达式从左到右求值。如果 print 语句中的第一个表达式是字符串,则 + 运算符将被视为字符串连接。如果第一个表达式是数字,+ 运算符将被视为加法。

顺便说一句,与您在问题中写的不同,由于字符串连接,第一个片段输出 345。