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


相关推荐

  • Python 学习:常用函数整理「建议收藏」

    Python 学习:常用函数整理「建议收藏」整理Python中常用的函数一,把字符串形式的list转换为list使用ast模块中的literal_eval函数来实现,把字符串形式的list转换为Python的基础类型list二,filte

    2022年7月5日
    32
  • 安装Luma QQ (LINUX)

    安装Luma QQ (LINUX)

    2021年4月28日
    136
  • 常见存储引擎_存储引擎

    常见存储引擎_存储引擎TiKV简介TiKV是一个分布式事务型的键值数据库,提供了满足ACID约束的分布式事务接口,并且通过Raft协议保证了多副本数据一致性以及高可用。TiKV作为TiDB的存储层,为用户写入TiDB的数据提供了持久化以及读写服务,同时还存储了TiDB的统计信息数据。整体架构与传统的整节点备份方式不同,TiKV参考Spanner设计了multiraft-group的副本机制。将数据按照key的范围划分成大致相等的切片(下文统称为Region),每一个切片会..

    2026年2月23日
    6
  • 计算机传真,电脑收发传真

    计算机传真,电脑收发传真WindowsXP有一项免费的传真功能,用它可以轻松收发传真,不用再买传真机了,可以通过网络直接发送。这里将发传真的具体操作步骤介绍如下,你只要照着做,一定就会收发传真。还可以用他来做打印机!中文名电脑收发传真特点免费的传真功能系统WindowsXP优点可以实现移动办公用于做打印机电脑收发传真操作步骤编辑语音电脑收发传真安装传真组件在WindowsXP-F收发…

    2022年6月28日
    24
  • android 电脑浏览器,这5种轻量级的国内Android浏览器,都有自己的“专有秘密”…

    android 电脑浏览器,这5种轻量级的国内Android浏览器,都有自己的“专有秘密”…在上一篇文章中,我整理并测试了六种来自国际力量的Android浏览器,包括流行的Chrome,具有丰富扩展功能的Firefox,具有隐私和安全性的FirefoxFocus,具有悠久历史的Opera,以及后来的MicrosoftEdge,Yandex除了主要国际制造商生产的产品外,国内开发商还致力于Android浏览器类别。他们希望在保持简单设计的基础上,寻求提供更多差异化的功能。这次我选择了五…

    2022年5月15日
    170

发表回复

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

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