String和StringBuffer,StringBuilder的区别:
 * A:String是内容不可变的,StringBuffer,StringBuilder是内容可变的。
 * B:StringBuffer是同步的,数据安全,效率低;StringBuilder是异步的,数据不安全,效率高。
 * StringBuffer和数组的区别:
 * 都可以看作一个容器,装其他类型的数据
 * StringBuffer的数据最终是一个字符串数组,可以是各种类型混合
 * 数组可以放置多种数据,但必须是同一种类型的数据
 * 形参问题:
 * String作为参数传递
 * StringBuffer作为参数传递
 * 注意:
 * String作为参数传递,和基本类型作为参数传递是一样的,

 * StringBuffer作为参数传递,数据处理时,一般建议调方法,一般不做=判断和赋值


                /*------------String -> StringBuffer ------*/
String s = "hello";
//不能直接把string的值赋给StringBuffer
//StringBuffer sb = "hello";
//方式一:用StringBuffer的构造方法赋值
StringBuffer sb1 = new StringBuffer(s);
//方式二:用append方法
StringBuffer sb2 = new StringBuffer();
sb2.append(s);

/*------------StringBuffer ->  String ------*/

StringBuffer sb3 = new StringBuffer("java");
//方式一:构造方法:
String s1= new String(sb3);
System.out.println("s: " + s1);
//方式二:用StringBuffer的toString()方法
String s2 = sb3.toString();
//toString()方法返回值是String,调用类名是StringBuffer类
System.out.println("s2: " + s2);

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐