黑马程序员技术交流社区

标题: StringBuilder 和 StringBuffer 的疑问 [打印本页]

作者: 杨银川    时间: 2011-12-9 23:51
标题: StringBuilder 和 StringBuffer 的疑问
本帖最后由 杨银川 于 2011-12-10 15:50 编辑

请问一下,StringBuilder 和 StringBuffer 都是定义动态字符串的,请问有什么明显区别啊,还有就是这两个类在实际开发过程中,怎么去用,什么时候用StringBuilder, 什么时候用StringBuffer 呢,谢谢
作者: 杨玉揆    时间: 2011-12-10 00:21
StringBuffer
Java.lang.StringBuffer线程安全的可变字符序列。一个类似于 String 的字符串缓冲区,但不能修改。虽然在任意时间点上它都包含某种特定的字符序列,但通过某些方法调用可以改变该序列的长度和内容。
可将字符串缓冲区安全地用于多个线程。可以在必要时对这些方法进行同步,因此任意特定实例上的所有操作就好像是以串行顺序发生的,该顺序与所涉及的每个线程进行的方法调用顺序一致。
java.lang.StringBuilde
java.lang.StringBuilder一个可变的字符序列是5.0新增的。此类提供一个与 StringBuffer 兼容的 API,但不保证同步。该类被设计用作 StringBuffer 的一个简易替换,用在字符串缓冲区被单个线程使用的时候(这种情况很普遍)。如果可能,建议优先采用该类,因为在大多数实现中,它比 StringBuffer 要快。两者的方法基本相同。
作者: 我心飞翔    时间: 2011-12-10 00:26
我来学习一下
作者: 常登凯    时间: 2011-12-10 01:02
很简答的,你只要知道StringBuilder 和 StringBuffer唯一的不同就是StringBuilder是非线程安全的,而StringBuffer是线程安全的就行了,所以只要你的程序不涉及到多线程运行的问题,那么,大胆的用StringBuilder吧,因为StringBuilder的运行速度要快一些,当然你作为用户是感觉不出来的,那只是几毫秒的差别而已。
所以你的程序如果牵扯到多线程就最好使用 StringBuffer,如果不涉及多线程就随你想用哪个
作者: 杨银川    时间: 2011-12-10 15:43
明白了,谢谢了{:soso_e100:}




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2