深入解析StringBuffer和StringBuilder的区别

2016-02-19 09:12 5 1 收藏

今天图老师小编给大家介绍下深入解析StringBuffer和StringBuilder的区别,平时喜欢深入解析StringBuffer和StringBuilder的区别的朋友赶紧收藏起来吧!记得点赞哦~

【 tulaoshi.com - 编程语言 】

做项目中经常用到String和StringBuilder,String可以用“+”来对字符串进行拼接,StringBuilder用append进行拼接,一直不明白既然可以用String,问什么还要用StringBuilder。尽管在做数据库查询的时候,习惯性的用了StringBuilder对查询语句进行拼接,但仍然不知道原因。今天看视频的时候,又看到了StringBuffer,感觉用法又差不多,所以特意查了一下这些东西的区别。
归纳如下:
1.在执行速度方面的比较:StringBuilder   StringBuffer  

2.StringBuffer与StringBuilder,他们是字符串变量,是可改变的对象,每当我们用它们对字符串做操作时,实际上是在一个对象上操作的,不像String一样创建一些对象进行操作,所以速度就快了。

3.StringBuilder:线程非安全的
  StringBuffer:线程安全的

当我们在字符串缓冲去被多个线程使用是,JVM不能保证StringBuilder的操作是安全的,虽然他的速度最快,但是可以保证StringBuffer是可以正确操作的。当然大多数情况下就是我们是在单线程下进行的操作,所以大多数情况下是建议用StringBuilder而不用StringBuffer的,就是速度的原因。

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

对于三者使用的总结:
1.如果要操作少量的数据用 String
2.单线程操作字符串缓冲区 下操作大量数据  StringBuilder
3.多线程操作字符串缓冲区 下操作大量数据  StringBuffer

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

来源:http://www.tulaoshi.com/n/20160219/1589927.html

延伸阅读
主要相同点:Lock能完成Synchronized所实现的所有功能。 主要不同点:Lock有比Synchronized更精确的线程予以和更好的性能。 Synchronized会自动释放锁,但是Lock一定要求程序员手工释放,并且必须在finally从句中释放。 synchronized 修饰方法时 表示同一个对象在不同的线程中 表现为同步队列 如果实例化不同的对象 那么synchronized就不会出现...
线框图并非是原型,但即使是经验丰富的设计师也可能会将两者混为一谈。实际上,两者的差别还是非常多且明显的,那么就让我们通过这篇文章分辨清楚这俩概念,一劳永逸。 线框图 线框图是产品设计的低保真呈现方式。它有三个简单直接而明确的目标: 1、呈现主体信息群 2、勾勒出结构和布局 3、用户交互界面的主视觉和描述 正确地创建了线框...
我发现很多搞信息技术的朋友们(非设计师)交付设计时,用着上面列出的词汇。他们以为线框图 (Wireframe)、原型 (Prototype) 和视觉稿 (Mockup) 是一个东西:表达自己创意的线框手绘设计稿。 混淆概念便带来麻烦:他们分不清用户体验设计师的作品,常常感到困惑。「这按钮他妈的怎么点不了?」「我不知道这个地方可以按啊!」类似这样的问题在用户...
标签: Java JAVA基础
abstractclass和interface是Java语言中对于抽象类定义进行支持的两种机制,正是由于这两种机制的存在,才赋予了Java强大的面向对象能力。abstractclass和interface之间在对于抽象类定义的支持方面具有很大的相似性,甚至可以相互替换,因此很多开发者在进行抽象类定义时对于abstractclass和interface的选择显得比较随意。其实,两者之间还是有很...
标签: Web开发
//香水坏坏 AT 06-07-25 //郁闷的事情总是接连不断,无形的压力来自内心的恐惧 大家在用.net进行数据操作的时候,接触DataReader不少。 System.Data.OleDb.OleDbDataReader; System.Data.Odbc.OdbcDataReader; System.Data.SqlClient.SqlDataReader; inherit from     System.MarshalByRefObjec...

经验教程

670

收藏

5
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部