(转载)/stimgo/article/details/53770376
StringBuilder 没有提供clear或empty方法。
清空有3种方法:
1)新生成一个,旧的由系统自动回收
2)使用delete
3)使用setLength
将三种方法循环1000万次,代码:
class sbbm {
2.
3. static String a;
4. static long time ;
5. public static void main( String[] args ) throws Exception {
6.
7. StringBuilder sb = new StringBuilder();
8. StringBuilder sb3 = new StringBuilder();
9.
10. time = ();
11. for( int i = 0; i < 10000000; i++ ) {
12. StringBuilder sb2 = new StringBuilder();
13. ( "someStr6ing" );
14. ( "someS5tring2" );
15. ( "some3Strin4g" );
16. ( "so3meStr5ing" );
17. ( "so2meSt7ring" );
18. a = ();
19. }
20. ( "Way2="+(()-time) );
21.
22.
23. time = ();
24. for( int i = 0; i < 10000000; i++ ) {
25. ( 0, () );
26. ( "someString" );
27. ( "someString2" );
28. ( "someStrin4g" );
29. ( "someStr5ing" );
30. ( "someSt7ring" );
31. a = ();
32. }
33. ( "Way1="+(()-time) );
34.
35. time = ();
36. for( int i = 0; i < 10000000; i++ ) {
37.
38. ( 0 );
39. ( "someStr55ing" );
40. ( "some44String2" );
41. ( "som55eStrin4g" );
42. ( "some66Str5ing" );
43. ( "so33meSt7ring" );
44. a= () ;
45. }
46. ( "Way3="+(()-time) );
47.
48.
49. }
50.}
注意append的字符串要都不相同,否则会因为Java 的String pool对结果造成影响(即3好于2)
结果:
1.Way2=9438
2.Way1=6281
3.Way3=6469
可以将各方法多重复几次,颠倒顺序,等
总体来看:方法2好于方法3好于方法1