欢迎来到天天文库
浏览记录
ID:34707867
大小:57.68 KB
页数:4页
时间:2019-03-09
《javastring与stringbuffer用法区别》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、JavaString与StringBuffer用法区别转载String类用来表示那些创建后就不会再改变的字符串,它是immutable的。而StringBuffer类用来表示内容可变的字符串,并提供了修改底层字符串的方法。--当我们进行字符拼接时,请使用StringBuffer类而非String类,因为前者将比后者快上百倍。的确,在程序的太多场合我们都会进行字符串拼接工作,简单的代码示例如下:Stringstr="Youarenice.";str+="Iloveyousomuch.";如果用StringBuffer类的话,代码如下:StringBufferstr=newS
2、tringBuffer("Youarenice.");str.append("Iloveyousomuch.");从表面看来String类只用一个加号(+)便完成了字符串的拼接,而StringBuffer类却要调用一个append()方法,是否实现起来更简洁,更单纯呢?其实不然,让我们了解一下程序运行内部发生了哪些事情:经编译后程序的bytecode(字节码)展示出了实质:在用String类对象直接拼接时,JVM会创建一个临时的StringBuffer类对象,并调用其append()方法完成字符串的拼接,这是因为String类是不可变的,拼接操作不得不使用StringBu
3、ffer类(并且--JVM会将"Youarenice."和"Iloveyousomuch."创建为两个新的String对象)。之后,再将这个临时StringBuffer对象转型为一个String,代价不菲!可见,在这一个简单的一次拼接过程中,我们让程序创建了四个对象:两个待拼接的String,一个临时StringBuffer,和最后将StringBuffer转型成为的String--它当然不是最初的str了,这个引用的名称没变,但它指向了新的String对象。而如果直接使用StringBuffer类,程序将只产生两个对象:最初的StringBuffer和拼接时的Strin
4、g("Iloveyousomuch."),也不再需要创建临时的StringBuffer类对象而后还得将其转换回String对象。可以想象,当我们的字符串要被循环拼接若干段时,用String类直接操作会带来多少额外的系统开销,生成多少无用的临时StringBuffer对象,并处理多少次无谓的强制类型转换哪。String类 String类提供了几种字符串创建方法。 Strings="abcd"使用字符串常量自动创建String实例。 Strings=newString(Strings)通过String对象或字符串常量传递给构造方法。 publicString(
5、charvalue[],intoffset,intcount)将字符数组一部分赋给String构造方法,offset为起始下表,count为数组长度。 String类提供了丰富的字符串操作方法,其中重要的例举如下。 publicintlenght()返回字符串的长度。 publiccharcharAt(intindex)返回字符串位置index处的字符。 publicbooleanequals(Objecto)比较两个字符串对象,相等则返回true;反之返回false。 publicintcompareTo(Strings)比较两个字符串字典顺序,相等
6、返回0,s大于当前字符串返回一个负值,s小于当前串返回一个正值。 publicbooleanregionMatches(inttoffset,Stringother,intooffset,intlen)从当前字符串位置toffset开始寻找字符串other中起始位置为ooffset长度为len的子串。如发现匹配,返回true;否则,返回false。 publicbooleanstartsWith(Stringprefix)从当前字符串的起始位置开始寻找字符串prefix。如发现匹配,返回true;否则,返回false。 publicbooleanendsWit
7、h(Stringsuffix)如当前字符串的结尾子串与suffix匹配,返回true;否则,返回false。 publicintindexOf(Stringstr)在当前字符串中寻找与str匹配的子串,返回首次匹配的起始下表值;无匹配返回-1。 publicStringsubstring(intbeginIndex,intendIndex)在当前字符串中,求从起始位置beginIndex到结束位置endIndex的子串。 publicStringconcat(Stringstr)将当前字符串与str连接,返回连接后
此文档下载收益归作者所有