String类:
字符串是常量,字符串的值在创建后不能改变。
字符串的底层是一个被final修饰的数组
private final byte[] value;
StringBuilder类
字符串缓冲区,可以提高字符串的操作效率
底层是一个没有被final修饰的数组,可以改变长度
byte[] value=new byte[16]
字符串的初始容量是16,如果超出了StringBuilder的初始容量,会自动扩容。
StringBuilder的构造方法:
1.public StringBuilder():构造一个空的StringBui里的人容器
StringBuilder bu1=new StringBuilder();
System.out.println("bu1:"+bu1);//bu1:
- public StringBuilder(String str):构造一个StringBuilder容器,并将字符串添加进去
StringBuilder bu2=new StringBuilder("abc");
System.out.println("bu2:"+bu2);//bu2:abc
StringBuilder类常用的的成员方法:
1.public StringBuilder append(…):添加任意类型数据的字符串形式,并返回当前对象自身
StringBuilder bu1=new StringBuilder();
//参数类型为字符串
StringBuilder bu2=bu1.append("abc");
System.out.println(bu1);//abc
System.out.println(bu2);//abc
System.out.println(bu1==bu2);//true 地址值相同 ,返回当前对象自身,bu1和bu2是同一个对象
//参数类型为boolean
bu1.append(true);
System.out.println(bu1);//abctrue
参数类型为int
bu1.append(12);
System.out.println(bu1);//abctrue12
使用append()方法不需要接收返回值,从判断bu1==bu2的值是true可以看出,返回的就是bu1本身。
2.public String toString():将当前StringBuilder对象转换成String对象
String str1="hello";
System.out.println("str1:"+str1);
StringBuilder bu1=new StringBuilder(str1);//String-->StringBuilder
bu1.append(" world");
System.out.println("bu1:"+bu1);
String str2=bu1.toString();//StringBuilder-->String
System.out.println("str2:"+str2);
3.public StringBuilder reverse() :反转
StringBuilder bu1=new StringBuilder("abc");
System.out.println(bu1);//abc
bu1.reverse();
System.out.println(bu1);//cba