黑马程序员技术交流社区

标题: 字符串处理 [打印本页]

作者: 陈雪平    时间: 2012-12-19 19:57
标题: 字符串处理
本帖最后由 陈雪平 于 2012-12-28 21:10 编辑

java提供了String StringBuffer 和StringBuider来处理字符串,但三者之间到底是怎么运用的,今天看的不是很懂,望叼丝们用通俗点的语言解释下,谢喽!!
作者: 李培根    时间: 2012-12-19 20:07
String是一个类,常见的功能有获取,转换,判断和比较。
StrifbBuffer是字符串缓冲区,可以理解为存储数据的容器,与String不同的是,它长度可变,提供了比String更加全面的功能。
StringBuilder提供了和StringBuffer相同的功能,只是线程是不同步的,速度更快,同等条件下优先实用StringBuilder
作者: 高境    时间: 2012-12-19 20:09
1.三者在执行速度方面的比较:StringBuilder >  StringBuffer  >  String
2.String <(StringBuffer,StringBuilder)的原因
String:字符串常量
StringBuffer:字符创变量
StringBuilder:字符创变量
StringBuilder:线程非安全的
StringBuffer:线程安全的
    当我们在字符串缓冲去被多个线程使用是,JVM不能保证StringBuilder的操作是安全的,虽然他的速度最快,但是可以保证StringBuffer是可以正确操作的。当然大多数情况下就是我们是在单线程下进行的操作,所以大多数情况下是建议用StringBuilder而不用StringBuffer的,就是速度的原因。
对于三者使用的总结:
1.如果要操作少量的数据用 = String
2.单线程操作字符串缓冲区 下操作大量数据 = StringBuilder
3.多线程操作字符串缓冲区 下操作大量数据 = StringBuffer

作者: 孙辉辉    时间: 2012-12-19 21:08
三者在执行速度方面的比较:StringBuilder >  StringBuffer  >  String
对于StringBuffer  和StringBulder

StringBuffer  是线程同步       线程安全的   多线程
StringBulder 是线程不同步的                 单线程


对于三者使用的总结:    1.如果要操作少量的数据用 = String

                        2.单线程操作字符串缓冲区 下操作大量数据 = StringBuilder

                        3.多线程操作字符串缓冲区 下操作大量数据 = StringBuffer

。。不知道屌丝们的语言通俗不。。




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