我们都知道如果是在很多String拼接的时候,选择StringBiluder 效率会更高;那么,原因是什么呢?
其执行如下:
final char c1[] = {'h','e','l','l','o'};
final char c2[] = {'w','o','r','l','d'};
final char c3[] = new char[10];
c3[] = {'h','e','l','l','o','w','o','r','l','d'};
所以,String 在运算时,会创建一个大小合适的char[]数组,当下次再拼接时再重新分配;
执行为字节码时:
但是,情况真的都是这样的吗?
如果,是两个引用相加的话,那么它就会调用StringBuilder来执行
如果是引用相加的话,那么就不需要使用StringBuilder来提高效率了;
但是,如果是多字符串拼接的话,我们还是老老实实使用StringBuilder来处理吧 这样,能够减少我们防错的可能性;