Java String、StringBuffer和StringBuilder的区别

参考答案

1.  可变与不可变

  • string对象是不可变的,String类中使用字符数组保存字符串,有“final”修饰符。以下参考:
 private final char value[];
  • StringBuilder与StringBuffer都代表可变的字符序,两者非常相似,都继承自AbstractStringBuilder类,而且方法也一样。以下参考:
char[] value;

2.  多线程安全

  • String中的对象是不可变的,可以理解为常量,是线程安全的
  • StringBuffer对方法加了同步锁或者对调用的方法加了同步锁,是线程安全的
  • StringBuilder并没有对方法进行加同步锁,是非线程安全的

实例参考:

public synchronized StringBuffer reverse() {
    super.reverse();
    return this;
}

public int indexOf(String str) {
    return indexOf(str, 0);        //存在 public synchronized int indexOf(String str, int fromIndex) 方法
}

以上,是Java面试题【Java String、StringBuffer和StringBuilder的区别】的参考答案。

 

输出,是最好的学习方法。

立即行动,在评论区记录下你的问题、笔记或补充~

—end—

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧