2

这个节目

public class OddBehavior {
    public static void main(String[] args){
        String[] words = new String[3];
        words[0] += "ify";
        System.out.println(words[0]);
    }
}

具有以下输出:

图片

我初始化了一个 3 s 的数组String,我认为应该是null. 但是通过将字符串“ify”添加到末尾words[0]words[0]得到了值"nullify",即它已经包含了字符串"null"String不是值null!)

4

1 回答 1

3

该代码words[0] += "ify"相当于words[0] = words[0] + "ify". 当字符串与+运算符连接时,Java 在内部使用 aStringBuilder将它们放在一起。当null附加到 StringBuilder 时,它使用文字"null"代替。这就是为什么会发生这种情况。

于 2013-08-04T03:18:15.320 回答