黑马程序员技术交流社区

标题: [提问] Buffer和Builder的区别何在? [打印本页]

作者: L1ub0w3n    时间: 2016-6-22 22:52
标题: [提问] Buffer和Builder的区别何在?
    这个还一直弄不明白
作者: 星空@3    时间: 2016-6-22 23:45
好像是一个不安全 一个安全吧
作者: 读书||养猪    时间: 2016-6-22 23:51
Buffer线程安全效率低
Builder线程不安全效率高
作者: 1051587947    时间: 2016-6-22 23:53
都是缓冲区
作者: 1316582449    时间: 2016-6-24 14:07
StringBuffer属于线程安全,相对为重量级
StringBuilder属于非线程安全,相对为轻量级

线程安全的概念: 网络编程中许多线程可能会同时运行一段代码。当每次运行结果和单独线程运行的结果是一样的,叫做线程安全。 为了达到线程安全的目的在一定程度上会降低程序的性能。所以在单线程中,StringBuilder的性能要比StringBuffer高。多线程为了线程安全需要采用StingBuffer。其实在线程不考虑的情况下,要是程序对性能的要求不高,太在意这两者的区别就没有什么意义(个人理解)。
作者: innovator    时间: 2016-6-24 15:22
1316582449 发表于 2016-6-24 14:07
StringBuffer属于线程安全,相对为重量级
StringBuilder属于非线程安全,相对为轻量级

解释的很好,学习了,也赞一个
作者: 善良的死神达乐    时间: 2016-6-24 15:43
方法一模一样,就只是StringBuffer是线程安全的。。。另一个是线程不安全的。。。用法都是一样的。。。
作者: 善良的死神达乐    时间: 2016-6-24 15:44
善良的死神达乐 发表于 2016-6-24 15:43
方法一模一样,就只是StringBuffer是线程安全的。。。另一个是线程不安全的。。。用法都是一样的。。。 ...

和线程无关。。。。不好意思,说叉了。。。。
作者: syinys7    时间: 2016-6-24 18:55
Buffer和Bulider

先从共同点说起吧,都是字符串缓冲区,用法也都是一样的,没有什么不同.....

不同点就在于,Bulider是线程不安全的,运行效率高,Buffer是线程安全的,效率低一些

目前只学到了这里,也当作给自己巩固吧~{:2_32:}




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