Java String拼接

来源:互联网 发布:2016最新网络歌曲dj版 编辑:程序博客网 时间:2024/04/26 23:07

华为笔试题

String s = null;  s += "abc";  System.out.println(s);  

答案是nullabc!

运行时, 两个字符串str1, str2的拼接首先会调用 String.valueOf(obj),这个Obj为str1,而String.valueOf(Obj)中的实现是return obj == null ? “null” : obj.toString(), 然后产生StringBuilder, 调用的StringBuilder()构造方法, 把StringBuilder初始化,长度为16,并且调用append(str1)! 接下来调用StringBuilder.append(str2), 把第二个字符串拼接进去, 然后调用StringBuilder.toString返回结果!

所以那道题答案的由来就是StringBuilder.append(“null”).append(“abc”).toString();

参考文献
剖析java中的String之__拼接