Java中的那些连接发生了什么?

Gur*_*lki 1 java

byte[] b1 = null;
byte[] b2 = null;

System.out.println(b1 + b2);    // 1
System.out.println("" + b1 + b2); // 2
Run Code Online (Sandbox Code Playgroud)

如果我取消注释1它会给出编译错误.
如果我取消注释2它打印nullnull;

那么这里发生了什么?

Kla*_*sen 7

第2行正在对两个数组的String进行隐式转换并将它们连接起来,这是有效的.在第一行中,您尝试将add运算符应用于两个字节数组,这是不受支持的.