A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

StringBuffer、StringBuilder和String的区别,以及它们的适用范围

3 个回复

倒序浏览
String长度不可以改变,StringBuffer的长度可以改变,线程同步。StringBuiler长度可以改变,线程不同步。
回复 使用道具 举报
前两个是容器,可以增删,第二个不同步
回复 使用道具 举报
他们都可以用来处理字符串。
String初始化后是不能改变的。不推荐在需要频繁改变字符串的情况下使用,因为String对象初始化之后是不能改变的,程序是通过不断的创建新对象,并且重新建立引用来实现字符串的改变的。这会浪费内存空间。
StringBuffer是一个字符串的缓冲区,主要提供了对字符串的添加(append),插入(insert),修改(setCharAt),删除(delete),查询(indexOf),截取(substring)等方法,就是用来处理字符串的,处理完的字符串使用toString方法就可以得到String对象。
StringBuilder和StringBuffer具有相同的功能,区别在于StringBuilder线程不同步,在单线程时,不用判断锁,相对于线程安全的StringBuffer来说,可以提高一些性能。但是在多线程并发访问的时候,会造成数据异常,需要进行线程同步处理。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马