Java里两个字符串怎么通过“+”来实现的

xiaoxiao2021-02-27  168

我们知道,一旦申明一个String类型的变量,它就会指向一个对象,而当对这个变量进行修改时,这个变量就会指向一个新的对象。但是像StringBuffer,它并不会产生新的对象:

StringBuffer sb = new StringBuffer(); sb.append("abc").append("def");这里sb会一直指向同一个对象。而我们使用“+”来拼接两个字符串时,比如String str = str1+str2会进行如下操作:

调用String.valueOf(Obj),其中obj为String类型的变量,如上面提到的str1和str2,String.valueOf()的原理为:return obj == null?"null":obj.toString();产生StringBuilder,调用StringBuilder(str1)的构造方法,把StringBuilder初始化,长度为str1.length+16,并且调用append(str1);继续调用append(str2);最后调用StringBuilder.toString()返回结果 所以最后的结论应该为:StringBuilder.append(str1).append(str2).toString()。  如果其中有任何错误,还请指出,互相学习! 本文参考:http://blog.csdn.net/zolalad/article/details/30089327

转载请注明原文地址: https://www.6miu.com/read-14304.html

最新回复(0)