String,StringBuffer,StringBuilder的区别
浏览:3795次 出处信息
经常有公司问这样的面试题.
这个问题非常基础,很多面试的人,都知道String对象是不可变的,在说原因的时候没说清,其实看看String源码就知道了
在new String的时候,String 中的3个成员变量value,count,offset都是final的,当然String类也是final的,所以一旦初始化后不能修改的。
StringBuffer,与StringBuilder都实现了相同的接口,而且都继承相同的父类,不同的是,StringBuffer的大部分方法都是同步的,所以是线程安全,StringBuilder没有同步,所以通常情况下效率上StringBuilder是优于StringBuffer的。
StringBuffer与StringBuilder随着append会扩大value[]的容量,这里具体做法是使用System类中的arraycopy方法拷贝,这个方法是调用底层本地方法来处理的,类似于直接使用C的指针操作,比较快。
建议继续学习:
- 一个简单的stl中string的split函数 (阅读:4056)
- 关于在函数调用时传递string引用的必要性 (阅读:3695)
- Java将Object对象转换为String的总结合集 (阅读:3495)
- 关于在“写时拷贝”发生的情况下直接操作string中内容出现的问题 (阅读:3124)
- 不得不留意的STL string重载函数和隐式类型转换 (阅读:1991)
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
扫一扫订阅我的微信号:IT技术博客大学习
<< 前一篇:GLIBC内存分配机制引发的“内存泄露”
后一篇:趣题:随机折断的木棒 >>
文章信息
- 作者:xiaog 来源: xiaog's blog
- 标签: String StringBuffer StringBuilder
- 发布时间:2011-01-30 03:15:14
建议继续学习
近3天十大热文
-
[1428] WordPress插件开发 -- 在插件使用 -
[115] 解决 nginx 反向代理网页首尾出现神秘字 -
[28] find命令的一点注意事项 -
[27] 浏览器的工作原理:新式网络浏览器幕后揭秘 -
[26] 如何建立合适的索引? -
[26] 分布式系统hash策略 -
[25] Oracle MTS模式下 进程地址与会话信 -
[25] 读书笔记-壹百度:百度十年千倍的29条法则 -
[25] 使用nginx记日志 -
[24] mysql查询中利用索引的机制
