我们之前讲过字符串String类,因为字符串是常量,创建之后是不能修改的,这里我们使用字符串缓冲区类,是可变的字符串类
1String类底层是被final修饰的数组,是无法改变的 private final byte[]
但是其字符串效率有些低,如String s = "a"+"b"+"c";
会先占据3个空间,存储a,b,c,然后第一次相加结果存储ab,最后一共存储了5次字符串,非常浪费空间
StringBuilder类底层也是一个数组,但是没有被final修饰,所以其是可变的
byte[] value = new byte[16],如上,就会把012三个位置给abc,如果数组长度不够,其会自动扩容*2,如16不够用,变成32,64..
其定义在java.lang包下,不用导包
构造方法
2如上,这里我们主要使用无参和传入字符串2种方法
3这里我们分别使用了无参和字符串参数实例,可以看到无参默认创建的是空字符串,这里我们修改了指定位置的字符,打印可以看到效果
常用方法
append方法
添加元素方法,看文档有多种重载方法,返回的是对象自身,即数组地址
4append参数实现的是末尾添加,上面分别实现了传入字符串和传入字符的添加
toString方法
我们创建了StringBuiler类,但是修改完毕不想再被改动,可以使用toString方法
reverse方法
反转数组,返回反转字符串缓冲区
5
网友评论