您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > 23Java中的StringBuffer和StringBuilder
Java中的StringBuffer和StringBuilder1.StringBuilder:JDK1.5以后出现了一个和StringBuffer(JDK1.0就出现了)功能一模一样的类,StringBuiler。构造方法和一般方法都一样,差别仅在于一个同步一个不同步。两者的不同点:StringBuffer是线程同步的,通常用于多线程(JDK1.0便有了);StringBuilder是线程不同步的,通常用于单线程,是为了提高效率而出来的,JDK1.5出来的。由于StringBuilder不需要同步,所以执行效率更快。2.StringBuffer和StringBuilder的最主要的方法是append和insert,这是String类中没有的方法。还有reverse方法等特有的。这两个类中有些方法功能与String重复,有些是特有的,但是有些String有而这两个没有,如spilt只是String有。3.注意:利用append()方法的好处:添加数据后,还是这个容器,而利用str=str+“XXX”;相当于创建了一个新的字符串。4.StringBuffer,字符串缓冲区,就是用于存储字符串的容器。5.StringBuffer的特点:①长度是可以变化的;(超过了就会自动复制到新的更大的缓冲区来实现自动变化)②可以存储不同类型的数据,最终转换成字符串使用。6.StringBuffer有4个构造方法(StringBuilder的构造方法与StringBuffer的一样):(1)StringBuffer():指定初始容量是16个字符,此时capacity为16,length为0.(2)StringBuffer(CharSequenceseq)(3)StringBuffer(intcapacity):指定初始容量值,capacity为设定值,length为0。(4)StringBuffer(Stringstr):容器初始为设定的字符串,然而capacity为16+字符串长度,如:StringBuffersb=newStringBuffer(zhaohong);capacity为24,length为8.7.至于可变长度理解:是自动把原来的数据复制到一个更大的容器中(将原来的复制一倍等方法进行扩大),数组无论如何都是不可变长度的。8.StringBuffer既然是一个存储容器,应该具备的功能:(1)添加:①方法append(data);data可以是除了short、byte之外的任何类型,但是short、byte类型可以利用int进行接收。此方法返回的是当前的StringBuffer对象。而且返回的仍然是同一个StringBuffer对象,此方法可以以方法链的方式调用:如StringBuffersb=newStringBuffer(abc);StringBuffersb2=sb.append(def).append(true).append(344);System.out.println(sb==sb2);//返回结果为true②insert():方法:insert(intoffset/index,data);返回仍然是一个StringBuffer对象。(2)删除:①StringBufferdelete(intstart,intend)如果清空一个容器,delete(0,sb.length())②StringBufferdeleteCharAt(intindex)(3)查找:①charcharAt(intindex)②intindexOf(Stringstr)③intlastIndexOf(Stringstr)④intlastIndexOf(Stringstr,intfromIndex)(4)修改:①StringBufferreplace(intstart,intend,Stringstr)②voidsetCharAt(intindex,charch)(5)方法voidsetLength(intnewLength):如果大于容器的长度,则自动在后面以空字符添加,如果设置的长度小于容器长度,则自动舍弃后面的字符。9.JDK的提高目的就是三点:简化书写,提高效率,增加安全性。10.可以向StringBuffer存放很多数据,但是从StringBuffer从取出来的数据都是字符串。11.StringBuffer和StringBuilder的方法使用一模一样,它们与String的方法有些区别:(1)前者不仅有length方法,还有capacity方法,返回都是int,后者只有length方法;(2)前者没有比较方法,没有实现Comparable接口,String有compareTo方法,实现了接口Comparable;(3)都有查找方法,indexOf,charAt等,可以找出某个索引处的字符或字符串,也可以根据字符或字符串找出索引,可以正序也可以反序;(4)都可以从原来的字符串中截取新的字符串,有两个方法,1.subString(intstart)2.subString(intstart,intend);(5)前者有append方法,可以添加除了short、byte外的六种基本数据类型,还有字符串、StringBuffer,任何类的引用Object等,字符数组,或字符数组的一部分。(6)前者有insert方法,插入的东西和append的一样。(7)前者有删除操作,两个方法,第一个delete(intstart,intend),第二个是deleteCharAt(intindex),返回都是一个StringBuffer或StringBuilder。而String中没有删除方法。(注意:字符串缓冲区中的删除方法名字为delete,然而集合中的删除操作名称为clear,remove)(8)都有替换方法,replace。(9)前者有设置字符操作:setCharAt(intindex,charch)(10)前者有设置字符长度操作:setLength(intnewLength)(11)String单独的功能还有很多,可以进行字符串的连接,包含关系的判断等。12.
本文标题:23Java中的StringBuffer和StringBuilder
链接地址:https://www.777doc.com/doc-2913186 .html