Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/357.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java中的这些连接发生了什么?_Java - Fatal编程技术网

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

Java中的这些连接发生了什么?,java,Java,如果我取消注释1,它将给出编译错误。 如果我取消注释2,它将打印null 那么这里发生了什么呢?第2行对两个数组的字符串进行隐式转换,并将它们连接起来,这是有效的。在第一行中,您试图将add运算符应用于两字节数组,这是不受支持的。第二行对两个数组的字符串进行隐式转换,并将它们连接起来,这是有效的。在第一行中,您试图将add运算符应用于不受支持的两字节数组。1尝试添加两个数组,这两个数组都为空。这是行不通的 2将数组null的字符串值追加为null值,toString Other的结果将添加到空字

如果我取消注释1,它将给出编译错误。 如果我取消注释2,它将打印null


那么这里发生了什么呢?

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

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

1尝试添加两个数组,这两个数组都为空。这是行不通的


2将数组null的字符串值追加为null值,toString Other的结果将添加到空字符串

1尝试添加两个都为null的数组。这是行不通的

2将数组null的字符串值追加为null值,否则将toString的结果追加为空字符串

未为字节数组定义添加操作+。就这么简单

字符串的特殊+操作非常努力地将各种数据类型转换为字符串,以使操作正常工作。在这种特殊情况下,将null引用转换为字符串null。很奇怪,但它可以防止一些错误

2没有应用于1的原因是1中没有涉及字符串,而in 2的存在迫使表达式作为字符串进行计算

未为字节数组定义添加操作+。就这么简单

字符串的特殊+操作非常努力地将各种数据类型转换为字符串,以使操作正常工作。在这种特殊情况下,将null引用转换为字符串null。很奇怪,但它可以防止一些错误

2没有应用于1的原因是1中没有涉及字符串,而in 2的存在迫使表达式作为字符串进行计算

对于这样的字节数组,可以使用+运算符。所以编译错误。 初始双引号将b1到b2转换为字符串。相当于b1.toString+b2.toString。所以是空的 对于这样的字节数组,可以使用+运算符。所以编译错误。 初始双引号将b1到b2转换为字符串。相当于b1.toString+b2.toString。所以是空的
在1中,您试图在Java中未定义的两个数组上使用运算符+


在2中,将字符串与空数组的字符串表示形式连接起来。这只是因为+从左向右解析,所以它被解释为字符串串联。将移动到行的末尾,它也会给您带来编译错误。

在1中,您试图在Java中未定义的两个数组上使用运算符+

在2中,将字符串与空数组的字符串表示形式连接起来。这只是因为+从左向右解析,所以它被解释为字符串串联。移动到行的末尾,它也会给您带来编译错误

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

System.out.println(b1 + b2);    // 1
System.out.println("" + b1 + b2); // 2