String类型与StringBuffer和StringBuilder
String类定义的字符串是不可修改的,StringBuffer与StringBuilder定义的为字符串变量,是可以修改的。
String str1 = “str1”;String str2 = “str2”;String str3 = str1 + str2;
String类型定义的字符串在变动时并不是在原有的基础上进行修改,如:在计算str3的字符串时,需要先获取str1的值和str2的值,并把两个字符串的值拼接后放入新的内存块中。
StringBuffer与StringBuilder在创建字符串时,是通过调用构造函数的方式实现的。
以StringBuilder为例:
StringBuilder stringBuilder = new StringBuilder().append("abc");
stringBuilder.append("de");
来看一下这段代码在内存中是如何呈现的
同样是实现两个字符串的拼接,StringBuilder与StringBuffer则是在原来的字符串上进行修改。很明显他们的执行效率是大于String类型的。