技术头条 - 一个快速在微博传播文章的方式     搜索本站
您现在的位置首页 --> 算法 --> String,StringBuffer,StringBuilder的区别

String,StringBuffer,StringBuilder的区别

浏览:2953次  出处信息

经常有公司问这样的面试题.

这个问题非常基础,很多面试的人,都知道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的指针操作,比较快。

建议继续学习:

  1. 一个简单的stl中string的split函数    (阅读:3200)
  2. 关于在函数调用时传递string引用的必要性    (阅读:2767)
  3. Java将Object对象转换为String的总结合集    (阅读:2737)
  4. 关于在“写时拷贝”发生的情况下直接操作string中内容出现的问题    (阅读:2277)
  5. 不得不留意的STL string重载函数和隐式类型转换    (阅读:1327)
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
© 2009 - 2024 by blogread.cn 微博:@IT技术博客大学习

京ICP备15002552号-1