Java中StringBuilder的清空方法比較

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/118394.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • xamarin android listview的用法

    xamarin android listview的用法listview也许是用的非常频繁的一个控件之一,下面我写一个xamarin的listview栗子,大家尝一尝xamarinandroid开发的乐趣。原谅我的大小写吧.listview绑定自定义的BaseAdapter先来看一下最终实现的效果图:News.cs和NewAdapter.csnamespaceDrawerLayout.Adapter{public…

    2022年7月22日
    12
  • Ubuntu输入法的使用

    Ubuntu输入法的使用更换输入方式系统 1 进入系统设置 ubuntu 桌面的右上角按钮菜单中 nbsp 系统设置 2 进入语言支持 nbsp 点击系统设置中的 nbsp 语言支持 3 更换输入方式系统在语言支持中的 nbsp 输入方式系统 nbsp 中 nbsp 进行选择 前提是你安装了其他的输入平台 例如我安装了 fcitx 所以可以选择 fcitx 添加删除输入法 nbsp 1 进入文本输入设置 nbsp nbsp nbsp nbsp 点击桌面右上角面板上的 nbsp 输入法菜单 nbsp 中的 nbsp 文本输入设置 2 添加输

    2025年8月21日
    0
  • 软件,硬件版本号命名规范是什么_版本号格式

    软件,硬件版本号命名规范是什么_版本号格式软件、硬件版本号命名规范常见版本号规范示例如v1.0.0通用版本命名规范如下:主版本号.子版本号.修订版本号.日期_版本阶段如v1.2.3.20201228_rc主版本号(1)功能模块发生较大变动,如增加多个模块/整体架构改变子版本号(2)功能增加或变化修订版本号(3)Bug修复或小变动,间隔不限,修复一个严重bug即可发布一个修订版由项目经理决定日期版本号(20201228)记录修改项目的当前日期,每天对项目修改都更改由开发人员决定希腊字母版本号(rc)标注当前版本的软

    2022年9月10日
    1
  • PKI

    PKI

    2021年7月27日
    63
  • JS截取字符串方法实例

    JS截取字符串方法实例

    2021年11月3日
    36
  • jQuery添加元素的方法

    jQuery添加元素的方法before() 在被选元素之前插入内容 after() 在被选元素之后插入内容 prepend() 在被选元素的开头插入内容 append() 在被选元素的结尾插入内容

    2022年6月22日
    26

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号