小白学java第31天
StringBuilder:
1.StringBuilder继承了AbstractStringBuilder
2.StringBuilder实现了Serializable,即StringBuffer的对象可以串行化(对象可以网络传输,可以保存到文件)
3.StringBuilder是一个fina类,不能被继承
4.StringBuilder字符序列是存在其父类的char[] value中 因此字符序列是堆中
5.StringBuilder的方法没有做互斥的处理即没有synchornized 因此我们推荐在单线程的情况下使用
Sting,StringBuffer,StringBuilder对比:
1.StringBuffer,StringBuilder非常类似,均代表可变的字符序列,而且方法也一样
2.String:不可变字符序列,效率低,但是复用率高
3.StringBuffer:可变字符序列,效率较高(增删),线程安全
4.StringBuilder:可变字符序列,效率最高,线程不安全
使用原则:
1.如果字符串存在大量的修改操作StringBuffer,StringBuilder
2.如果字符串存在大量的修改操作,并在单线程的情况,StringBuilder
3.如果字符串存在大量的修改操作,并在多线程的情况,StringBuffer
4.如果字符串很少修改,被多个对象引用,使用String,比如配置信息等