package LC20130929;
/**
* 字符串处理类: StringBuffer ~~ StringBuilder 〉〉 String 效果一样但是,性能却大不一样!
前面两个 不定。有时StringBuffer 比较快,有时StringBuilder类比较快!!
StringBuffer 是StringBuilder的前身;
StringBuffer可以允许多个线程进行增加或者移除字符操作。
StringBuilder在一个线程里编辑时使用
* @author Long-Cong
*/
public class StringPkStringBuffer {
public static void main(String[] args)
{
TestAdd();
}
public static void TestAdd()
{
String str = new String();
StringBuffer strbuff = new StringBuffer();
long [] timeBegin = new long [3];
long [] timeEnd = new long [3];
// String
timeBegin[0] = System.currentTimeMillis() ;
for(int i=0;i<80000;i++)
str = str + i ;
timeEnd[0] = System.currentTimeMillis() ;
// StringBuffer
timeBegin[1] = System.currentTimeMillis() ;
for(int i=0;i<80000;i++)
strbuff = strbuff.append(i) ;
timeEnd[1] = System.currentTimeMillis() ;
StringBuilder strbuilder = new StringBuilder();
// StringBuilder
timeBegin[2] = System.currentTimeMillis() ;
for(int i=0;i<80000;i++)
strbuilder = strbuilder.append(i) ;
timeEnd[2] = System.currentTimeMillis() ;
System.out.println("使用String进行80000次连接耗时: "+(timeEnd[0]-timeBegin[0])+"ms");
System.out.println("使用StringBuffer进行80000次连接耗时: "+(timeEnd[1]-timeBegin[1])+"ms");
System.out.println("使用StringBuilder进行80000次连接耗时: "+(timeEnd[2]-timeBegin[2])+"ms");
}
}
结果:
使用String进行80000次连接耗时: 31594ms
使用StringBuffer进行80000次连接耗时: 19ms
使用StringBuilder进行80000次连接耗时: 8msfinalize()方法
当对象被回收时自动调用。可以重写了它,做一些自己的关闭处理。