JAVASE总结--StringBuffer StringBuilder

来源:互联网 发布:最短路问题的floyd算法 编辑:程序博客网 时间:2024/06/05 02:28

* 不可变字符串序列

 String

 * 可变字符串序列

 StringBuffer:安全性高效率低

 StringBuilder:效率高安全性低

 

 * 首先创建了一个长度为16的数组,当存放数据的时候,首先检查当前数组是否能够装下当前数据,如果存的下直接存放,

 * 如果存不下,数组开始扩容,每次扩大 length*2+2,所以说我们可变字符串序列就是因为数组的大小在一直改变

StringBuffer buffer =new StringBuffer();

buffer.append("王思聪");

buffer.append("林更新");

buffer.append("王思聪");

buffer.append("abcdefghijklmn");

 

StringBuilder builder = new StringBuilder();

builder.append("霍建华");

builder.append("林心如");

builder.append("胡歌");

===================================================

public class TestEnum {

public static void main(String[] args) {

StringBuffer sbf = new StringBuffer("java");

StringBuffer sbf1 = sbf.append(",C#");

String sbf2 = sbf + ",C#";

System.out.println(sbf.equals(sbf1));

System.out.println(sbf == sbf1);

System.out.println(sbf2.equals(sbf));

 

Date date = new Date();

java.sql.Date date2 = new java.sql.Date(date.getTime());

 

Random random = new Random();

 

for (int i = 0; i < 20; i++) {

//生成20个0-100的整数System.out.print(random.nextInt(101)+"\t");

}

}

}

 

执行结果:

true

true

false

46373841171295823963537267578215187657

==================================================

public class TestStringBuffer {

public static void main(Stringargs[]) {

StringBuffer a =new StringBuffer("A");

StringBuffer b =new StringBuffer("B");

mb_operate(a,b);

System.out.println(a +"." + b);

}

 

static void mb_operate(StringBufferx, StringBuffery) {

x.append(y);

y =x;

y.append("w");

}

}

 

执行结果:

ABw.B

0 0