【解惑】String StringBuffer StringBuilder 区别与联系
这东西经常用来作为面试题 难为大家、不过仔细分析一下觉得还是挺有用的。
String StringBuffer
-----------------------------------
相同点:都是线程安全的,
String是因为它是final类,可以说是线程安全的。但不能说是绝对线程安全,我看JVM那本书上写的还有this逃逸这个问题。 暂时没搞懂。
StringBuffer 是因为那些有可能出现并发操作导致线程不安全的方法全部用了synchronized 方法修饰了。所以安全。
都是数组来存储内容,那个数组呢这个数组————————————>
String的储值数组 private final char value[];
String的储值数组 char value[];
不同点:字符串链接操作,也就是数组满了的情况处理方式不一样。
String的数组满了,它需要重新建一个新数组然后把旧数组值赋值过去。
StringBuffer 注意构造的长度是str.length()+16) 直接把append的字符追加到数组后面。
讨论String和StringBuffer可不可变。本质上是指对象中的value[]字符数组可不可变,而不是对象引用可不可变。
StringBuffer与StringBuilder的比较
----------------------------------
不同点:线程安全性方面
StringBuffer 是因为那些有可能出现并发操作导致线程不安全的方法全部用了synchronized 方法修饰了。所以安全。
StringBuilder 没有用synchronized 修饰,所以效率高。
相同点:他们都是可变的普通数组。
构造方法都是用的 父类AbstractStringBuilder 同一个构造方法。
部分参考:博客http://www.iteye.com/topic/522167
分享到:
相关推荐
String StringBuffer和StringBuilder 区别之源码解析 从源码角度简单对它们之间的区别进行了验证
String,StringBuffer,StringBuilder区别。几乎所有的应用开发都离不开操作字符串,理解字符串的设计和实现以及相关 工具如拼接类的使用,对写出高质量代码是非常有帮助的
String、StringBuilder和StringBuffer的区别 String、StringBuilder和StringBuffer的区别 String、StringBuilder和StringBuffer的区别
String:字符串常量 StringBuffer:字符创变量 StringBuilder:字符创变量 从上面的名字可以看到,String是“字符创常量”,也就是不可改变的对象。对于这句话的理解你可能会产生这样一个疑问 ,比如这段...
String ,StringBuffer与StringBuilder的区别
下面小编就为大家带来一篇浅谈java中String StringBuffer StringBuilder的区别。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
介绍了String、StringBuffer、StringBuilder的使用方法,以及理论知识
String及StringBuffer和StringBuilder的区别
String、StringBuffer 和 StringBuilder 的区别 碎碎念 简单认识这三个对象 String StringBuffer StringBuilder 深入理解 String、StringBuilder、StringBuffer 从设计角度理解 String StringBuilder StringBuffer ...
简单的介绍了String、StringBuffer和StringBuilder的区别
stringbuilder用法 String、StringBuilder、StringBuffer 用法比较String、StringBuilder、StringBuffer 用法比较String、StringBuilder、StringBuffer 用法比较String、StringBuilder、StringBuffer 用法比较String...
string,stringbuffer,stringbuilder
目录StringStringBuffer与StringBuilder总结 String ...StringBuffer与StringBuilder 这两者基本相似,都是可变字符串对象,主要区别为线程是否安全。 总结 最后,引用菜鸟教程下的总结以及相关评论: S
Java中String,StringBuffer与StringBuilder的区别和用法。
string,stringBuffer,stringBuilder
String、StringBuilder以及StringBuffer的区别
关于String、StringBuilder、StringBuffer的本质区别,
主要介绍了java 中String和StringBuffer与StringBuilder的区别及使用方法的相关资料,在开发过程中经常会用到String 这个类进行操作,需要的朋友可以参考下
java中String、StringBuffer、StringBuilder是编程中经常使用的字符串类,他们之间有什么区别呢?下面小编给大家总结了Java中String、StringBuffer、StringBuilder的区别详解,需要的朋友参考下吧
主要介绍了Java 中 String,StringBuffer 和 StringBuilder 的区别及用法的相关资料,需要的朋友可以参考下