黑马程序员技术交流社区
标题:
个人总结之StringBuffer类和StingBuilder类的区别
[打印本页]
作者:
tomson_tang
时间:
2015-2-7 09:01
标题:
个人总结之StringBuffer类和StingBuilder类的区别
由于String类是不可变类,即一旦一个String对象被创建以后,包含在这个对象中的字符序列是不可改变得,直至这个对象被销毁。StringBuffer对象则代表一个字符序列可变的字符串,当一个StringBuffer被创建以后,通过StringBuffer提供的append(),insert(),reverse(),setCharAt(),setLength()等方法可以改变这个字符串对象的字符序列。一旦通过StringBuffer生成了最终想要的字符串,就可以调用它的toString()方法将其转换为一个String对象。
从jdk1.5开始出现的StringBuilder类,也代表字符串对象。实际上,StringBuffer与StringBuilder基本相似,两个类的构造器和方法也基本相同。不同的是,StringBuffer是线程安全的(由于该类中的方法为同步方法,故为线程安全的,但代价是会比StringBuilder慢),而StringBuilder则没有实现线程安全功能,所以性能略高。因此在通常情况下,如果需要创建一个内容可变的字符串对象,则应该优先使用Stringbuilder()类。
并且StringBuilder类的API文档中写到:该类被设计用作 StringBuffer 的一个简易替换,用在字符串缓冲区被单个线程使用的时候(这种情况很普遍)。如果可能,建议优先采用该类,因为在大多数实现中,它比 StringBuffer 要快。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2