线程安全
1.所属的包 java.lang包
2继承 Object
实现接口Serializable,CharSequence,Appendable
StringBuffer/StringBuilder没有compareTo方法
StringBuffer/StringBuilder含有一个String没有的方法 append();拼接
3.特性
可变字符串 char[] value; 动态扩容
StringBuffer()
StringBuffer(String str)
StringBuffer(int capacity)
线程不安全。
1.所属的包 java.lang包
2继承 Object
实现接口Serializable,CharSequence,Appendable
StringBuffer/StringBuilder没有compareTo方法
StringBuffer/StringBuilder含有一个String没有的方法 append();拼接
3.特性
可变字符串 char[] value; 动态扩容
//无参数构造方法 构建一个默认长度16个空间的对象 char[]。
StringBuilder builder = new StringBuilder();
//利用给定的参数 构建一个自定义长度空间的对象 char[]
StringBuilder builder = new StringBuilder(20);
//利用带String参数的构造方法 默认数组长度字符串长度+16个
StringBuilder builder = new StringBuilder(“abc”);(19个长)
最主要的方法 append() 频繁的拼接字符串的时候使用此方法 提高性能
ensureCapacity(int minimumCapacity) 确保底层数组容量够用
capacity();//字符串底层char[]的容量
length();//字符串有效元素个数(长度)
setLength();//设置字符串的有效元素个数
char = charAt(int index);
int = codePointAt(int index);
String = substring(int start [,int end]);
注意需要接受返回值 看见截取出来的新字符串效果
StringBuilder = delete(int start [,int end]);
StringBuilder类中独有的方法String类没有
将start到end之间的字符串删掉 不用接受返回值就看到效果啦
StringBuilder = deleteCharAt(int index);
String类中没有的方法
将给定index位置的某一个字符删除掉啦
int = indexOf(String str [,int fromIndex]);
int = lastIndexOf(String str [,int fromIndex])
找寻给定的str在字符串中第一次出现的索引位置 带重载 则从某一个位置开始找
reserve():字符串反转。
二者区别:线程安全不安全问题。
原文:https://www.cnblogs.com/kangrenfeng/p/13948696.html