**java中操作string和StringBuffer性能对比及参数运用**
事例:
java中操作String和StringBuffer
在对String进行字符串拼接的时候,使用的是+=这个符号进行拼接,而如果使用StringBuffer的时候呢就会使用append的方法,在其后边进行追加,效率是大大的提高。
StringBuffer中有几个相关的方法与string有所不同
1.append(String specifiedStr) ——在指定的字符串后边追加
2.reverse(String specifiedStr) ——将指定字符串进行顺序反转
public static void main(String[] args) {
//StringBuffer、String的性能
System.out.println("开始"+System.currentTimeMillis());
String zz = "456";
for(int i=0;i<10000;i++){
zz+=String.valueOf(i);
}
System.out.println("结束"+System.currentTimeMillis());
System.err.println("-------------------------------------------");
System.out.println("开始"+System.currentTimeMillis());
StringBuffer bb = new StringBuffer("124456");
for(int i=0;i<10000;i++){
bb.append(i);
}
System.out.println("结束"+System.currentTimeMillis());
//使用的StringBuffer的reverse方法
StringBuffer sb = new StringBuffer(new String("hello"));
StringBuffer reverseStr = sb.reverse();
System.out.println(reverseStr);
}
但是还有另外一种情况,就是String和StringBuffer的性能是不一样的,这时候StringBuffer的性能将远不如String,如String qq =“The”+“world”+“is”+“beautiful”;与StringBuffer ww =new StringBuffer(“zzz”);
ww.append(“123”).append(“qqq”).append(“aaa”);
具体执行效率看以下代码:
public static void main (String [] args){
System.out.println("开始---------"+System.currentTimeMillis());
String qq ="The"+"world"+"is"+"beautiful";
System.out.println("结束---------"+System.currentTimeMillis());
System.out.println("---------------------------------------");
System.out.println("开始---------"+System.currentTimeMillis());
StringBuffer sb = new StringBuffer("The");
sb.append("world").append("is").append("beautiful");
System.out.println("结束---------"+System.currentTimeMillis());
}
这样的话String就比StringBuffer的执行效率快很多,因为在String眼里"The"+“world”+“is”+“beautiful”;这个东西就是"The world is beautilful"所以执行的效率相对来说就比较快了。