黑马程序员技术交流社区
标题:
String, StringBuffer StringBuilder的区别。
[打印本页]
作者:
wgc
时间:
2016-10-13 01:03
标题:
String, StringBuffer StringBuilder的区别。
String 的长度是不可变的;
StringBuffer的长度是可变的,如果你对字符串中的内容经常进行操作,特别是内容要修改时,那么使用 StringBuffer,如果最后需要 >String,那么使用 StringBuffer 的 toString() 方法;线程安全;
StringBuilder 是从 JDK 5 开始,为StringBuffer该类补充了一个单个线程使用的等价类;通常应该优先使用 StringBuilder 类,因>为它支持所有相同的操作,但由于它不执行同步,所以速度更快。
使用字符串的时候要特别小心,如果对一个字符串要经常改变的话,就一定不要用String,否则会创建许多无用的对象出来.
来看一下比较
String s = "hello"+"world"+"i love you";
StringBuffer Sb = new StringBuilder("hello").append("world").append("i love you");
这个时候s有多个字符串进行拼接,按理来说会有多个对象产生,但是jvm会对此进行一个优化,也就是说只创建了一个对象,此时它的执行速度要比StringBuffer拼接快.再看下面这个:
String s2 = "hello";
String s3 = "world";
String s4 = "i love you";
String s1 = s2 + s3 + s4;
上面这种情况,就会多创建出来三个对象,造成了内存空间的浪费
作者:
李孝志
时间:
2016-10-13 01:28
懂了,原来如此,以前理解有点错误
作者:
蓝光四号
时间:
2016-10-13 07:22
总结的不错
作者:
barny
时间:
2016-10-13 11:12
不错不错继续分享
作者:
mhp5498
时间:
2016-10-13 12:52
理解了,顶
作者:
mafu1993
时间:
2016-10-13 12:55
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2