首页IT科技stringbuffer可以存储多大内容(StringBuffer类)

stringbuffer可以存储多大内容(StringBuffer类)

时间2025-06-20 11:37:10分类IT科技浏览3766
导读:StringBuffer类 一、 结构剖析...

StringBuffer类

一            、 结构剖析

Java.lang.StringBuffer 代表可变的字符序列            ,可以对字符串内容进行增删            。

很多方法与String相同                  ,但StringBuffer是可变长度的                  。

StringBuffer是一个容器      。

String VS StringBuffer

String 保存的是字符串常量      ,里面的值不能更改            ,每次String类的更新实际上就是更改地址                  ,效率较低      。private final char value[]; StringBuffer保存的是字符串变量      ,里面的值可以更改      ,每次StringBuffer的更新实际上可以更新内容                  ,不用更新地址            ,效率较高                  。char[] value; //这个存放在堆里 //StringBuffer类的细节: public class StringBuffer01 { public static void main(String[] args) { //1. StringBuffer 的直接父类 是 AbstractStringBuilder //2. StringBuffer 实现了 Serializable      ,即StringBuffer的对象可串行化 //3. 在父类 AbstractStringBuilder 中有属性 char value[]                   ,不是final // 该 value数组 存放我们的字符串内容            ,是存放在堆中的而非常量池,value[]不是常量了 //4. StringBuffer 是一个final类                  ,不能被继承 //5. 因为StringBuffer 字符内容是存在 char[] value                  ,所以在变化时(增加/删除) // 不用每次都更换地址(即不是每次都创建新对象),所以效率高于 String(每次变化都会指向新的对象) StringBuffer stringBuffer = new StringBuffer(); } }

二                  、 StringBuffer转换

StringBuffer的构造器

StringBuffer() 构造一个没有字符的字符串缓冲区            ,初始容量为16个字符            。 StringBuffer(CharSequence seq) 构造一个包含与指定的相同字符的字符串缓冲区 CharSequence       。 StringBuffer(int capacity) 构造一个没有字符的字符串缓冲区和指定的初始容量                  。 StringBuffer(String str) 构造一个初始化为指定字符串内容的字符串缓冲区            。 public class StringBuffer02 { public static void main(String[] args) { //构造器的使用 //1. 创建一个大小为 16的char[]                  ,用于存放字符内容 StringBuffer stringBuffer = new StringBuffer(); //2. 通过构造器指定 char[] 大小 StringBuffer stringBuffer1 = new StringBuffer(100); //3. 通过 给一个String 创建 StringBuffer      ,char[] value的大小就是 str.length + 16 StringBuffer hello = new StringBuffer("hello"); //4. 创建StringBuffer            ,包含与指定的CharSequence相同的字符。 // StringBuffer(CharSequence seq) } }

StringBuffer 和 String 之间的转换

String ——> StringBuffer:

方式1:使用构造器

方式2:使用 append方法

StringBuffer ——> String

方式1:使用StringBuffer 提供的 toString方法

方式2:使用构造器

public class StringAndStringBuffer { public static void main(String[] args) { //看 String ——> StringBuffer String str = "hello tom"; //方式1 使用构造器 //注意:返回的才是StringBuffer对象                  ,对str本身没有影响 StringBuffer stringBuffer = new StringBuffer("str"); //方式2 使用的是 append方法 StringBuffer stringBuffer1 = new StringBuffer(); stringBuffer1.append(str); //看 StringBuffer ——> String StringBuffer stringBuffer2 = new StringBuffer("你好!"); //方式1:使用StringBuffer 提供的 toString方法 String s = stringBuffer2.toString(); //方式2:使用构造器 String s2 = new String(stringBuffer2); } }

三      、 StringBuffer的常见方法

增 append() 删 delete(start,end) 改 replace(start,end,string)      ,将start~end之间的内容替换掉      ,不含end                  。 查 indexOf()                  ,查找子串在字符串第一次出现的索引            ,如果找不到返回 -1. 插 insert() 获取长度 length() public class StringBufferMethod { public static void main(String[] args) { StringBuffer s = new StringBuffer("hello"); //增 s.append(,);// "hello," s.append("张三丰");// "hello,张三丰" s.append("赵敏").append(100).append(true).append(10.5);// "hello,张三丰100true10.5" System.out.println(s); //删 /* 删除索引 >= start && < end 处的字符 解读:删除 11 ~ 14 的字符 [11,14) */ s.delete(11,14); System.out.println(s);//hello,张三丰赵敏true10.5 //改 //使用 周芷诺 替换 索引 9 - 11 的字符 [9      ,11) s.replace(9,11,"周芷若"); System.out.println(s);//hello,张三丰周芷若true10.5 //查找指定的子串在字符串中第一次出现的索引                  ,如果找不到返回-1 int indexOf = s.indexOf("张三丰"); System.out.println(indexOf);//6 //插 //在索引为9的位置插入 "赵敏"            ,原来索引为9的内容自动后移 s.insert(9,"赵敏"); System.out.println(s);//hello,张三丰赵敏周芷若true10.5 //长度 System.out.println(s.length()); System.out.println(s); } }

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
如何优化排名(合理散布让网站排名更上一层楼) 如何利用面包屑导航提升网站的SEO优化效果(从设计到实现,解析面包屑导航的SEO优化方法)