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)
上一篇 2021年12月6日 下午8:00
下一篇 2021年12月6日 下午9:00


相关推荐

  • 机器学习 之 感知机(Perceptron)

    机器学习 之 感知机(Perceptron)文章目录一 简介二 模型三 感知机算法的原始形式 1 理论 2 实现 3 效果四 感知机算法的对偶形式 1 理论 2 实现 3 效果一 简介今天来学习下机器学习的敲门砖 感知机模型 网上查了很多中英文资料 得知感知机是在 1957 年由 FrankRosenbl 提出的 它被成为机器学习领域最为基础的模型 虽然是最为基础的 但是它在机器学习的领域中 有着举足轻重的地位 它是 SVM 支持向量机 和 NN 神

    2026年3月26日
    2
  • 常用的字符串截取方法

    常用的字符串截取方法1取字符串的前i个字符str=str.substring(0,i);str=str.remove(i,str.Length-i);2去掉字符串的前i个字符:str=str.remove(0,i);str=str.substring(i);3从右边开始取i个字符:str=str.substring(str.Length-i);str=str.remove(0,str.Lengt…

    2022年5月10日
    90
  • js获取cookie

    js获取cookie

    2021年8月22日
    69
  • scrt远程连接工具怎么切换窗口

    scrt远程连接工具怎么切换窗口scrt远程连接工具怎么切换窗口

    2022年4月23日
    109
  • c语言获得当前时间_c语言怎么表示时间

    c语言获得当前时间_c语言怎么表示时间函数名:time()头文件:time.h函数原型:time_ttime(time_t*timer)功能:获取当前的系统时间,返回的结果是一个time_t类型,其实就是一个大整数,其值表示从UTC(CoordinatedUniversalTime)时间1970年1月1日00:00:00(称为UNIX系统的Epoch时间)到当前时刻的秒数。然后可以调用localtime将time_t…

    2022年10月10日
    4
  • python——正则表达式(re模块)详解

    python——正则表达式(re模块)详解在Python中需要通过正则表达式对字符串进⾏匹配的时候,可以使⽤⼀个python自带的模块,名字为re。正则表达式的大致匹配过程是:1.依次拿出表达式和文本中的字符比较,2.如果每一个字符都能匹配,则匹配成功;一旦有匹配不成功的字符则匹配失败。3.如果表达式中有量词或边界,这个过程会稍微有一些不同。r:在带有’r’前缀的字符串字面值中,反斜杠不必做任何特殊处理。因此r”\n”表示包含’\’和’n’两个字符的字符串,而”\n”则表示只包含一个换行符的字符串。re模块的

    2022年5月17日
    52

发表回复

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

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