目录
1.主要区别
- String 字符串常量(线程安全,修饰符final char[],效率很差 )长度不可变
- StringBuffer 字符串变量(线程安全,synchronized修饰,效率差)长度可以变
- StringBuilder 字符串变量(线程不安全,效率较高)长度可以变
String 使用final进行修饰的,值不能改变的,也不能被继承
String改变的时候其实是创建了一个新的对象,把指针指向了这个对象
2.三者执行效率排序(从低到高)
String===>StringBuffer ===>StringBuilder
3.String和String Buffer的相互转换
StringBuffer sb=new StringBuffer("123"); //String 转StringBuffer
String str=sb.toString(); //StringBuffer 转String
4.总结:
如果要操作少量的数据,使用String
多线程操作数据,使用StringBuffer
单线程操作大量数据,使用StringBuilder
5.扩展:
String 常用方法
- equals()字符串比较
- trim()删除空格
- substring()截取指定位置的字串。
- length()数组长度
- charAt(index)返回第指定索引值的字符,索引从0开始
- concat()追加字符串
- equalsIgnoreCase()忽略大小写比较
- endsWith()是否以某字符结束,一般用于检查图片是否以.jpg或者其他结尾。
- StartWith()是否以某字符开始。
- indexOf("q")某字符首次出现的位置
- lastIndexOf("d")某字符最后依次出现的位置
- toLowerCase()变小写toUpperCase()变大写
StringBuffer()常用方法
append("")
拼接insert(2, "小明");
插入sb.delete(2,4);
包头不包尾sb.replace(1,2,"hello");
替换reverse()
倒置