黑马程序员技术交流社区
标题:
StringBuffer、StringBuilder和String的区别?
[打印本页]
作者:
laine
时间:
2015-5-4 15:47
标题:
StringBuffer、StringBuilder和String的区别?
StringBuffer、StringBuilder和String的区别,以及它们的适用范围
作者:
弯曲/mg抛物☀
时间:
2015-5-4 16:22
String长度不可以改变,StringBuffer的长度可以改变,线程同步。StringBuiler长度可以改变,线程不同步。
作者:
唐泉银
时间:
2015-5-4 16:59
前两个是容器,可以增删,第二个不同步
作者:
IDhmpj
时间:
2015-5-4 21:21
他们都可以用来处理字符串。
String初始化后是不能改变的。不推荐在需要频繁改变字符串的情况下使用,因为String对象初始化之后是不能改变的,程序是通过不断的创建新对象,并且重新建立引用来实现字符串的改变的。这会浪费内存空间。
StringBuffer是一个字符串的缓冲区,主要提供了对字符串的添加(append),插入(insert),修改(setCharAt),删除(delete),查询(indexOf),截取(substring)等方法,就是用来处理字符串的,处理完的字符串使用toString方法就可以得到String对象。
StringBuilder和StringBuffer具有相同的功能,区别在于StringBuilder线程不同步,在单线程时,不用判断锁,相对于线程安全的StringBuffer来说,可以提高一些性能。但是在多线程并发访问的时候,会造成数据异常,需要进行线程同步处理。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2