String、StringBuffer与StringBuilder之间区别
2015-11-12 16:17
585 查看
1.String不可改变的对象,StringBuffer与StringBuilder都是可以改变对象
原因是可以查看源码:
![](http://img.blog.csdn.net/20151112162003974?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
value[ ]修饰符为private final private说明只有自己的类可以访问,final定义为常量,不可修改
而StringBuilder 继承自AbstractStringBuilder,AbstractStringBuilder源码如下,Value的修饰为default ,同一个包里面都而已访问,没有final修饰,可修改
[b]
![](http://img.blog.csdn.net/20151112162519557?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
[/b]
StringBuffer与StringBuilder都是可改变的对象,
但是StringBuilder效率高,线程不安全;
StringBuffer效率低,线程安全
[b][b]对于三者使用的总结:[/b][/b]
1.如果要操作少量的数据用 = String
2.单线程操作字符串缓冲区 下操作大量数据 = StringBuilder
3.多线程操作字符串缓冲区 下操作大量数据 = StringBuffer
原因是可以查看源码:
value[ ]修饰符为private final private说明只有自己的类可以访问,final定义为常量,不可修改
而StringBuilder 继承自AbstractStringBuilder,AbstractStringBuilder源码如下,Value的修饰为default ,同一个包里面都而已访问,没有final修饰,可修改
[b]
[/b]
StringBuffer与StringBuilder都是可改变的对象,
但是StringBuilder效率高,线程不安全;
StringBuffer效率低,线程安全
[b][b]对于三者使用的总结:[/b][/b]
1.如果要操作少量的数据用 = String
2.单线程操作字符串缓冲区 下操作大量数据 = StringBuilder
3.多线程操作字符串缓冲区 下操作大量数据 = StringBuffer
相关文章推荐
- js-QuickStart-base.js
- ios UIScrollView不能响应TouchesBegin:的事件的解决办法
- Codeforces Testing Round #12C - Subsequences (dp+树状数组优化)
- break语句和continue语句
- 使用uiautomator时遇到问题的处理方法
- easyui ComboBox 中文检索问题
- Range Sum Query 2D - Immutable
- iOSUI调试工具------Reveal
- UIAlertController
- CYC-UITableViewCell的动态高度
- UIScrollView 的subViews的问题
- 让UITableView的section header view不悬停的方法
- ant <copy文件忽略目录结构flatten="true"
- Django中request和response中的属性方法详述
- UIView 控件
- Mac下安装使用apktool,jd-gui进行反编译
- karma+requirejs+angular 测试
- Bluemix 动手系列 (二) 通过命令行部署和更新云应用
- java web 通过前台输入的数据(name-value)保存到后台 xml文件中
- uiscrollview和uiimagevie的代理实现