当前位置: 首页 > article >正文

Java中StringBuilder的清空方法比较

StringBuilder 没有提供clear或empty方法。
清空有3种方法:
1)新生成一个,旧的由系统自动回收
2)使用delete
3)使用setLength

将三种方法循环1000万次,代码:


1.public 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 = System.currentTimeMillis();

11.          for( int i = 0; i < 10000000; i++ ) {

12.              StringBuilder sb2 = new StringBuilder();

13.              sb2.append( "someStr6ing" );

14.              sb2.append( "someS5tring2" );

15.              sb2.append( "some3Strin4g" );

16.              sb2.append( "so3meStr5ing" );

17.              sb2.append( "so2meSt7ring" );

18.              a = sb2.toString();

19.          }

20.          System.out.println( "Way2="+(System.currentTimeMillis()-time) );

21.          

22.

23.        time = System.currentTimeMillis();

24.        for( int i = 0; i < 10000000; i++ ) {

25.            sb.delete( 0, sb.length() );

26.            sb.append( "someString" );

27.            sb.append( "someString2" );

28.            sb.append( "someStrin4g" );

29.            sb.append( "someStr5ing" );

30.            sb.append( "someSt7ring" );

31.            a = sb.toString();

32.        }

33.        System.out.println( "Way1="+(System.currentTimeMillis()-time) );

34.

35.        time = System.currentTimeMillis();

36.        for( int i = 0; i < 10000000; i++ ) {

37.

38.            sb3.setLength( 0 );

39.            sb3.append( "someStr55ing" );

40.            sb3.append( "some44String2" );

41.            sb3.append( "som55eStrin4g" );

42.            sb3.append( "some66Str5ing" );

43.            sb3.append( "so33meSt7ring" );

44.            a= sb3.toString() ;

45.        }

46.        System.out.println( "Way3="+(System.currentTimeMillis()-time) );

47. 

48.     

49.    }

50.}


注意append的字符串要都不相同,否则会因为java 的String  pool对结果造成影响(即3好于2)

结果:


1.Way2=9438

2.Way1=6281

3.Way3=6469

可以将各方法多重复几次,颠倒顺序,等
总体来看:方法2好于方法3好于方法1

http://www.lryc.cn/news/2413931.html

相关文章:

  • 数据库SQL优化大总结1之- 百万级数据库优化方案
  • 9个Mac软件下载站,天下没有难找的软件。
  • CA证书服务器搭建及证书申请
  • DEDE5.7 模板文件不存在,无法解析文档个中解决方法
  • 【前端素材】推荐优质后台管理系统Acara平台模板(附源码)
  • IIS无法启动:发生意外错误0x8ffe2740的原因
  • 控制理论中常见名词中英文对照
  • 使用DM368的GPIO控制NANDFLASH的WP
  • Java图形化界面编程超详细知识点(7)——进度条
  • 雅虎YUI 3.7.1发布
  • FastDFS,Redis,Solr,ActiveMQ核心技术整合二(1)
  • CTF training WriteUp
  • 【转】花开正当时,十四款120/128GB SSD横向评测
  • widgets
  • win7开机出现修复计算机,win7开机提示系统自动修复无法正常进入的原因分析及解决...
  • 空间转换与动画
  • cf聊天室,cf聊天室下载
  • VM虚拟机常见问题之二----声卡驱动问题
  • 数字系统的设计
  • C语言笔记1
  • Windows中d3dx9_28.dll丢失解决
  • 脾胃系病证--便秘,痢疾,泄泻,腹痛,呃逆。。。。。。。。
  • 联想android手机驱动,驱动天空 - 手机驱动 - 联想手机 lenovo
  • show java玩jar游戏_指小游Java模拟器v1.2/安卓手机上玩jar游戏
  • 数据中台技术选型和厂商分析
  • NO.117 国内8大免费CMS建站系统。
  • 【2024最新版】超详细Aircrack-ng安装保姆级教程,破译WiFi,收藏这一篇就够了
  • 【Python】成功解决FileNotFoundError: [Errno 2] No such file or directory: ‘xxx‘
  • k2698场效应管参数电流_LDO 基础特性 2 静态电流
  • ZYNQ学习笔记(一):基于ZYNQ7020、AN108的DDS实验(VIO可控频率字)