stringbuffer与stringbuilder的区别?
2016-03-24 10:12
387 查看
1. 在执行速度方面的比较:StringBuilder > StringBuffer 2. StringBuffer与StringBuilder,他们是字符串变量,是可改变的对象,每当我们用它们对字符串做操作时,实际上是在一个对象上操作的,不像String一样创建一些对象进行操作,所以速度就快了。 3. StringBuilder:线程非安全的 StringBuffer:线程安全的 当我们在字符串缓冲去被多个线程使用是,JVM不能保证StringBuilder的操作是安全的,虽然他的速度最快,但是可以保证StringBuffer是可以正确操作的。当然大多数情况下就是我们是在单线程下进行的操作,所以大多数情况下是建议用StringBuilder而不用StringBuffer的,就是速度的原因。 对于三者使用的总结:1.如果要操作少量的数据用 = String 2.单线程操作字符串缓冲区 下操作大量数据 = StringBuilder3.多线程操作字符串缓冲区 下操作大量数据 = StringBuffer
StringBuffer属于线程安全,相对为重量级
StringBuilder属于非线程安全,相对为轻量级
线程安全的概念: 网络编程中许多线程可能会同时运行一段代码。当每次运行结果和单独线程运行的结果是一样的,叫做线程安全。 为了达到线程安全的目的在一定程度上会降低程序的性能。所以在单线程中,StringBuilder的性能要比StringBuffer高。多线程为了线程安全需要采用StingBuffer。其实在线程不考虑的情况下,要是程序对性能的要求不高,太在意这两者的区别就没有什么意义(个人理解)
相关文章推荐
- OUI-10133:登台区无效
- UE4 含源码插件合集
- LINQ中AsEnumerable与AsQueryable的区别
- 用UE4源码工作之 常用链接合集
- 读视频文件和运动物体检测cvCaptureFromCAM cvQueryFrame
- druid的安装
- compileSdkVersion与buildToolsVersion
- ueditor div style被过滤 解决办法
- 《iOS Human Interface Guidelines》——Info Button
- requirejs 小结
- UISplitViewController - 分割视图控制器
- poj-2533-Longest Ordered Subsequence
- 《iOS Human Interface Guidelines》——Detail Disclosure Button
- 新安装的mysql,启动时候出现错误 The server quit without updating pid file
- 详解iOS App开发中改变UIButton内部控件的基本方法
- UINavigationController、UINavigationBar及navigationItem关系探讨
- .NET跨平台之Sake和KoreBuild
- UIImageView添加圆角
- UVa 1584 Circular Sequence --- 水题
- UESTC 250 windy数 (数位DP)