线程安全、同步(所以要判断,效率低)
StringBuffer和String的区别
*String是一个不可变的字符序列
*StringBuffer是一个可变的字符序列
toString
对比上面添加功能
charAt(int index) 返回指定索引处的char 值。
public class Test1 { /** * * 需求:把数组中的数据按照指定个格式拼接成一个字符串 * 举例: int[]arr = {1,2,3}; 输出结果: "[1,2, 3]" 用StringBuffer的功能实现 */ publicstatic void main(String[] args) { int[]arr = {1,2,3}; System.out.println(arrayToString(arr)); } /* * 将数组转换为字符串 * 1,返回值类型String * 2,参数列表int[] * * arrayToString 将数组转换为字符串 * array2String 2与to的发音一样就用2替换了to,后来演变成了一种书写习惯 * dom4j domForJ */ publicstatic String arrayToString(int[] arr) { StringBuffersb = new StringBuffer(); //创建字符串缓冲区对象 sb.append("["); //将[添加到缓冲区 //{1,2,3} for(int i = 0; i < arr.length; i++) { //遍历数组 //sb.append(arr[i]+ ", "); //这样做没有] if(i== arr.length - 1) { sb.append(arr[i]).append("]"); //[1, 2, 3] }else{ sb.append(arr[i]).append(","); //[1,2, } } returnsb.toString(); } }
public class Demo7_StringBuffer { /** 基本数据类型的值传递,不改变其值 引用数据类型的值传递,改变其值 String类虽然是引用数据类型,但是他当作参数传递时和基本数据类型是一样的 */ publicstatic void main(String[] args) { Strings = "heima"; System.out.println(s); change(s); System.out.println(s); System.out.println("---------------------"); StringBuffersb = new StringBuffer(); sb.append("heima"); System.out.println(sb); change(sb); System.out.println(sb); } publicstatic void change(StringBuffer sb) { sb.append("itcast"); } publicstatic void change(String s) { s+= "itcast"; } }
同StringBuffer
源代码文件:http://download.csdn.net/detail/qq_26553781/9835132