StringBuffer:
线程安全的可变字符串
StringBuffer:长度内容可变,String长不内容不可变
成员方法:
添加功能:
StringBuffer sb = new StringBuffer();
sb.append(“abc”);
sb.insert(1,“a”);
删除方法:
sb.delete(0,2); //索引范围
sb.deleteCharAt(2); //指定索引
替换方法
sb.replace(0,1,“a”); // 把第一位换成a
翻转功能
sb.reverse();// 翻转 abc cba
截取功能
sb2.append(“hello”).append(“world”).append(“java”);
String s = sb2.substring(5); // 返回String类型
System.out.println(s); // worldjava
System.out.println(sb2);//不变
String 和 StringBuffer的互相转换
String转StringBuffer
String s = “abc”;
1.
StringBuffer sb = new StringBuffer();
sb.append(s);
2.
StringBuffer sb = new StringBuffer(s);
StringBuffer转String
1.
String s = new String(sb);
2.
String s = sb.toString();
String StringBuffer和StringBuilder的区别
String 不可变
StringBuffer 可变,同步,数据安全,效率低
SatringBuilder可变,不同步,数据不安全,效率高
StringBuffer和数组的区别
都可以看做是一个容器,装其他的数据
StringBuffer的数据最终是一个字符串数据
数组可以放置多种数据,但必须是同一种数据类型的
String作为参数传递
StringBuffer作为参数传递
形式参数:
基本类型:形式参数的改变不影响实际参数
引用类型:形式参数的改变直接影响实际参数
注意:
String作为参数传递,效果和基本类型作为参数传递是一样的
StringBuffer会影响