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

Java中StringBuilder的清空方法比較的更多相关文章

  1. Java中StringBuilder的清空方法比较

    StringBuilder 没有提供clear或empty方法.清空有3种方法:1)使用delete2)新生成一个,旧的由系统自动回收3)使用setLength 将三种方法循环1000万次,代码: p ...

  2. java中stringBuilder的用法

    java中stringBuilder的用法 String对象是不可改变的.每次使用 System.String类中的方法之一时,都要在内存中创建一个新的字符串对象,这就需要为该新对象分配新的空间.在需 ...

  3. Java中接口和抽象类的比較

    Java中接口和抽象类的比較-2013年5月写的读书笔记摘要 1. 概述 接口(Interface)和抽象类(abstract class)是 Java 语言中支持抽象类的两种机制,是Java程序设计 ...

  4. 【Android】java中调用JS的方法

    最近因为学校换了新的教务系统,想做一个模拟登陆功能,发现登陆的账号和密码有一个js脚本来进行加密 整理了一下java中执行JS的方法 智强教务 账号 密码 加密方法 var keyStr = &quo ...

  5. java中substring的使用方法

    java中substring的使用方法 str=str.substring(int beginIndex);截取掉str从首字母起长度为beginIndex的字符串,将剩余字符串赋值给str: str ...

  6. Java中Set的contains()方法

    Java中Set的contains()方法 -- hashCode与equals方法的约定及重写原则 翻译人员: 铁锚 翻译时间: 2013年11月5日 原文链接: Java hashCode() a ...

  7. java中BorderLayout的使用方法

    相关设置: 使用BorderLayout布局上下左右中布局5个按键,单击中间的那个按键时就关闭窗口 代码: /**** *java中BorderLayout的使用方法 * 使用BorderLayout ...

  8. 【Java】Java中常用的String方法

    本文转载于:java中常用的String方法 1 length()字符串的长度 String a = "Hello Word!"; System.out.println(a.len ...

  9. Java中Set的contains()方法——hashCode与equals方法的约定及重写原则

    转自:http://blog.csdn.net/renfufei/article/details/14163329 翻译人员: 铁锚 翻译时间: 2013年11月5日 原文链接: Java hashC ...

随机推荐

  1. scanf 与 cin 的区别

    在论坛上看到有人提出一个如下的问题,在此总结一下. 原问题: http://topic.csdn.net/u/20110414/22/90d0606c-9876-48e4-9b69-bd8bd8a41 ...

  2. QT自定义对象导入JavaScript脚本使用

    1.对象 项目属性要添加 QT += script自定义的对象头文件如下,实现正常就好,记得脚本里要调用的方法一定要定义在public slots:下,要不然调用时提示该对象没有*方法   #ifnd ...

  3. 第2章 Python基础语法--Hello python

    第2章 基础语法 2.1 基本介绍 2.1.1 Hello python 每个语言的开始都是从”HelloWorld”开始的,我们也不例外.打开已经安装好的Python编译环境,至于Python如何安 ...

  4. commons-logging \ log4j \ slf4j 之间的关系

    最近的一个web项目中要使用到日志,但是对常用的日志记录工具(框架)着实不是很理解,在此mark一下. 1.commons-logging.jar common-logging是apache提供的一个 ...

  5. S2S:分享出的营销机遇

    (速途网专栏 作者:高学争)经常在网上购物的你,有没有遇到过这样的问题:你知道自己想买什么,但是在淘宝上一搜,出来了数以万计的同类型,他们有着同样的价位(甚至可能是同样的图片),但是由不同的商家提供, ...

  6. NET Core,你必须了解无处不在的“依赖注入”

    NET Core,你必须了解无处不在的“依赖注入” ASP.NET Core的核心是通过一个Server和若干注册的Middleware构成的管道,不论是管道自身的构建,还是Server和Middle ...

  7. VC++对象布局的奥秘:虚函数、多继承、虚拟继承

    哈哈,从M$ Visual C++ Team的Andy Rich那里又偷学到一招:VC8的隐含编译项/d1reportSingleClassLayout和/d1reportAllClassLayout ...

  8. HDFS写入和读取流程

    HDFS写入和读取流程 一.HDFS HDFS全称是Hadoop Distributed System.HDFS是为以流的方式存取大文件而设计的.适用于几百MB,GB以及TB,并写一次读多次的场合.而 ...

  9. stm32之GPIO

    stm32有5组GPIO口,GPIOA GPIOB GPIOC GPIOD GPIOE 每个GPIO端口有: 2个配置寄存器GPIOx_CRL, GPIOx_CRH(32位): 2个数据寄存器GPIO ...

  10. git 使用过程(二、创建版本库)

    1.显示当前git所在操作文件路径 命令:pwd  2.改变当前操作路径 命令:cd /e/神马神马的,如果想到当前文件夹的某个子目录下,可以直接输入命令:cd 子目录名称,这样就可以了. 3.创建一 ...