Java字符串连接 - 空值

Tia*_*ago 1 java string string-concatenation

可能重复:
在Java中连接空字符串

我只是想知道是否有人可以解释为什么以下代码的工作方式如下:

String a = null;
String b = null;
String c = a + b;
System.out.println(c.toString());
Run Code Online (Sandbox Code Playgroud)

这会将"nullnull"打印到控制台.

我有点期待操作+会抛出异常,或者在较小程度上抛出"c"将为空.

rat*_*eak 9

因为该代码编译成

String c = new StringBuilder().append(a).append(b).toString();
Run Code Online (Sandbox Code Playgroud)

StringBuilder.append(a)附加的结果String.valueof(a)"null",如果anull