字符串是一个常量,它们的值在被创建不可改变。
底层是被final的byte数组,不能改变
“a"+"b"+"c"="ab"+"c"="abc"
三个内存 两个内存 一个内存 占用空间
String Builder 类是一个字符串缓冲区,可以提高字符串效率,长度可以变化,他的底层也是个数组但没有被final修饰,可以改变长度。
byte【】 value =new byte【16】;
“a"+"b"+"c"="abc"
直接变成一个内存空间节省内存,
String BUilder类始终是一个数组,占用内存低,速度快,如果长度不够还会自动扩容。
构造方法:
StringBuilder() 构造一个不带任何字符的字符串生成器,其初始容量为 16 个字符。 |
|
append(.... s) 添加任意类型的字符串 返回当前对象本身
public class FuXi2 {
public static void main(String[] args) {
StringBuilder n = new StringBuilder();
System.out.println(n);
StringBuilder n1 = new StringBuilder("String");//指定字符串初始化内容
System.out.println(n1);
n1.append(600);//添加任意类型的数据返回此数据转化为字符串 注意:使用append方法无需设置返回值。
System.out.println(n1);//直接打印即可
//链式编程:方法返回值是一个对象可以继续调用方法
n1.append(50).append(60).append("a").append(true).append(5.00);//如此
}
}
tostring() 将当前StringBuilder对象转化为String对象
StringBuilder可以相互转化
String转化为字符串 调用Stringbuilder类的构造方法
StringBuilder类转化为String 调用Stringbuilder类中的toString方法
public class FuXi2 {
public static void main(String[] args) {
StringBuilder n1 = new StringBuilder("String");//指定字符串初始化内容
StringBuilder n = n1.append(50);
System.out.println(n1);
System.out.println(n1==n);//不重写equals默认比较的是地址值
n1.append(600);//添加任意类型的数据返回此数据转化为字符串 注意:使用append方法无需设置返回值。
System.out.println(n1);//直接打印即可
//链式编程:方法返回值是一个对象可以继续调用方法
n1.append(50).append(60).append("a").append(true).append(5.00);//如此
System.out.println("===================================================================");
String s1 ="Hello";
StringBuilder s = new StringBuilder(s1);//传递s1自己定义的字符串内容
s.append("World");//添加String类型的字符串进入数组
System.out.println(s);
String s2 = s.toString();//使StringBuilder对象转化为String对象
System.out.println(s2);
}
}