java中清空StringBuffer的方法,我能想到的有4种:

1. buffer.setLength(0);  设置长度为0

2. buffer.delete(0, buffer.length());  删除0到末尾

3. buffer.replace(0, buffer.length(), "");  替换所有内容为空字符串

4. buffer=new StringBuffer();   创建新的StringBuffer

那么这4种方法哪种消耗的时间最少呢?

我对上面4种方法分别进行了百万次的循环,代码如下:

 public class StringBufferTest {
public static void main(String[] args) {
StringBuffer buffer=new StringBuffer();
Long time1=System.currentTimeMillis();
for(int i=1;i<1000000;i++){
buffer.append("hello,world"+i);
buffer.setLength(0);
}
Long time2=System.currentTimeMillis();
System.out.println("setLength cost==="+(time2-time1)); Long time3=System.currentTimeMillis();
for(int i=1;i<1000000;i++){
buffer.append("hello,world"+i);
buffer.delete(0, buffer.length());
}
Long time4=System.currentTimeMillis();
System.out.println("delete cost==="+(time4-time3)); Long time5=System.currentTimeMillis();
for(int i=1;i<1000000;i++){
buffer.append("hello,world"+i);
buffer.replace(0, buffer.length(), "");
}
Long time6=System.currentTimeMillis();
System.out.println("replace cost==="+(time6-time5)); Long time7=System.currentTimeMillis();
for(int i=1;i<1000000;i++){
buffer.append("hello,world"+i);
buffer=new StringBuffer();
}
Long time8=System.currentTimeMillis();
System.out.println("new cost==="+(time8-time7));
}
}

得到了如下结果,为了排除偶然性,进行了5次测试:

    

           

通过上面的结果我们可以看出:

最耗费时间的是创建对象的方法(new StringBuffer()),其次是设置长度的方法(setLength(0));

最节省时间的是删除的方法(delete(0, buffer.length())),其次是替换的方法(replace(0, buffer.length(), ""))。

[java,2017-05-16] java中清空StringBuffer的方法以及耗费时间比较的更多相关文章

  1. 2017/05/16 java 基础 随笔

    1,成员变量和局部变量的区别 1)在内存中的位置不同 成员变量:在堆内存(成员变量属于对象,对象进堆内存) 局部变量:在栈内存(局部变量属于方法,方法进栈内存) 2)初始化值不同 成员变量:有默认初始 ...

  2. 【java提高】(16)---java注解(Annotation)

    java提高(16)---java注解 注解含义注解是JDK1.5之后才有的新特性,它相当于一种标记,在程序中加入注解就等于为程序打上某种标记,之后又通过类的反射机制来解析注解. 一.JDK自带注解 ...

  3. Java 学习笔记(16)——Java数据库操作

    数据库操作是程序设计中十分重要的一个部分,Java内置JDBC来操作数据库 JDBC使用 JDBC--Java Database connecting Java数据库连接:本质上JDBC定义了操作数据 ...

  4. 2017.10.16 java中getAttribute和getParameter的区别

    (1)getAttribute:表示得到 域中的对象 返回的是OBJ类型;  getParameter:表示 得到 传递的参数 返回的是String类型; 也就是getAttribute获得的值需要进 ...

  5. 2017/05/02 java 基础 随笔

    1.PrtSc键是截屏键   打开画图软件  ctrl+v就可以复制到 2.win7以上可以  在当前目录下shift+右键 3.junit和javaweb应用的main函数在哪里? java程序跑起 ...

  6. 2017/05/21 java 基础 随笔

    工具类:所有的方法都是静态的,如果一个类中所有的方法都是静态的,需要再多做一步,私有构造方法,不让其他类创建本类对象. 生成文档: java.lang 包不用导入 常见代码块的应用    * a:局部 ...

  7. 2017/05/07 java 基础 随笔

    1.^异或  逻辑运算符  两边相同为false  不同为ture 2.键盘录入 package com.huawei; /** * 键盘录入 * @author Eric * */ import j ...

  8. 2017/05/04 java 基础 随笔

    1.java变量在使用之前必须初始化 int  a; a=10 ; int b; 没有初始化,也没有使用也不报错 2.强制类型转换  int a=8: byte b=6; b=(byte)(a+b); ...

  9. 2017/05/20 java 基础 随笔

    static 关键字的特点 1.随着类的加载而加载 2.优先于对象存在 3.被类的所有对象共享 如果某个成员变量是被所有对象共享的,那么他就应该定义为静态的 4.可以通过类名调用 其实它本身也可以通过 ...

随机推荐

  1. 组队项目,Main队伍

    本小组经过讨论,决定做的项目为----厨娘 分组情况: 1.界面设计:胡骏 2.前段,界面代码实现:梅庆 3.后台.逻辑处理:唐正奎.张军洪.袁成杰 4.数据库的建立与存写:张军洪.蒋利平 厨娘——需 ...

  2. 查看selinux与关闭方法

    查看当前用户selinux 状态 [root@o- ~]# getenforce Disabled [root@o- ~]# setenforce usage: setenforce [ Enforc ...

  3. 磁性窗体设计C#(二)

    using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using Sy ...

  4. Java学习笔记40(sql:将数据库内数据存入对象中)

    新建一个数据表: use qy97; create table student( id int primary key auto_increment, sname ), gander ), age i ...

  5. 基于Verilog的简单FIFO读写实验

    一.模块框图及基本思路 fifo_ip:ISE生成的IP fifo_control:在fifo未满情况下不断写入递增的四位数,每隔1s读出一个数据驱动Led显示 fifo_top:前两个模块的组合 二 ...

  6. windows环境安装MySQL

    转:https://www.cnblogs.com/ayyl/p/5978418.html windows环境安装MySQL mySQL下载链接:MySQL Installer 5.7 :http:/ ...

  7. 1--Postman使用token进行批量测试

    1. 先执行登陆接口,查看返回token是再响应头还是再响应体 有的返回再响应头中,有的再响应体中 2.设置环境变量token,并从登陆接口获取token赋值给环江变量 第一步:创建环境变量,值为空即 ...

  8. 第七十八课 最短路径(Dijkstra)

    核心思想是从已知的最短路径推算未知的最短路径. 添加程序: #ifndef GRAPH_H #define GRAPH_H #include "Object.h" #include ...

  9. yii2 Rbac实例 (做完以下这些 会有些小的报错,相信各位都能解决,大多数都是自己命名空间上的问题)。

    首先我自己没有使用自带的user表 如果model层没有AuthItem.php   那就自建一个将下面这些内容写入 <?php namespace backend\models; use Yi ...

  10. Concordion test

    reference documents http://concordion.org/Example.html