StringStringBuffer与StringBuilder之间区别
Posted Rex243135667
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了StringStringBuffer与StringBuilder之间区别相关的知识,希望对你有一定的参考价值。
参考文档:https://blog.csdn.net/itchuxu...
一.String
String 是不可变的对象, 因此在每次对 String 类型进行改变的时候其实都等同于生成了一个新的 String 对象,然后将指针指向新的 String 对象,这样不仅效率低下,而且大量浪费有限的内存空间,所以经常改变内容的字符串最好不要用 String。
二.StringBuffer 和 StringBuilder 类
StringBuffer 字符串变量(线程安全,但速度较慢)
StringBuilder 字符串变量(非线程安全,但速度较快)
用来优化字符串拼接效率的工具类
创建对象StringBuffer() : 构造一个其中不带字符的字符串缓冲区,其初始容量为 16 个字符
常用方法:StringBuffer append(String str),将指定的字符串追加到此字符序列。
特点
(1).封装了char[]数组
(2).是可变的字符序列
(3).提供了一组可以对字符内容修改的方法
(4).常用append()来代替字符串做字符串连接
(5).内部字符数组默认初始容量是16:initial capacity of 16 characters
(6).如果大于16会尝试将扩容,新数组大小原来的变成2倍+2,容量如果还不够,直接扩充到需要的容量大小。int newCapacity = value.length * 2 + 2;
(7).StringBuffer 1.0出道线程安全,StringBuilder1.5出道线程不安全
小结:
(1)如果要操作少量的数据用 String;
(2)多线程操作字符串缓冲区下操作大量数据 StringBuffer;
(3)单线程操作字符串缓冲区下操作大量数据 StringBuilder。
以上是关于StringStringBuffer与StringBuilder之间区别的主要内容,如果未能解决你的问题,请参考以下文章
StringStringBuffer与StringBuilder之间区别
StringStringBuffer与StringBuilder之间区别
StringStringBuffer与StringBuilder之间区别
StringStringBuffer与StringBuilder 复习回顾总结