java stringbuilder 清空问题

我也是碰到了这个问题才开始研究的,网上答案偏多,并且时间范围也比较大,各个版本的java 优化也不清楚,只能说我的java环境是1.7,测试给大家看。

三种思想

1、新生成一个,旧的由系统自动回收

2、delete 方法

builder1.delete(0, builder.length());

3、Length

StringBuilder val = new StringBuilder();

val.Append(“….”);

val.Length = 0;//清空

代码

StringBuilder builder = new StringBuilder();

long time = System.currentTimeMillis();

for(int i=0;i<10000000;i++){

builder = new StringBuilder();

builder.append("aa");

builder.append("bb");

builder.append("cc");

builder.append("dd");

builder.append("ee");

}

System.out.println("new 耗时:" + (System.currentTimeMillis() - time));

long time1 = System.currentTimeMillis();

StringBuilder builder1 = new StringBuilder();

for(int i=0;i<10000000;i++){

builder1.delete(0, builder.length());

builder1.append("a");

builder1.append("b");

builder1.append("c");

builder1.append("d");

builder1.append("e");

}

System.out.println("delete 耗时:" + (System.currentTimeMillis() - time1));

long time2 = System.currentTimeMillis();

StringBuilder builder2 = new StringBuilder();

for(int i=0;i<10000000;i++){

builder2.setLength(0);

builder2.append("1a");

builder2.append("1b");

builder2.append("1c");

builder2.append("1d");

builder2.append("1e");

}

System.out.println("setLenth=0 耗时:" + (System.currentTimeMillis() - time2));

结果一:

new 耗时:485

delete 耗时:471

setLenth=0 耗时:385

结果二:

new 耗时:621

delete 耗时:411

setLenth=0 耗时:423

总结

方法二和方法三耗时是差不多的,每次运行花费的时间是不一样的,目前没有去计算每一种方法所占用的资源分别是多少

java 清空stringbuilder_java stringbuilder 3种清空方法性能比较相关推荐

  1. Java动态代理的两种实现方法:JDK动态代理和CGLIB动态代理

    Java动态代理的两种实现方法:JDK动态代理和CGLIB动态代理 代理模式 JDK动态代理 CGLIB动态代理 代理模式 代理模式是23种设计模式的一种,指一个对象A通过持有另一个对象B,可以具有B ...

  2. 用java实现云计算的两种趋势性方法

    本文讲的是用java实现云计算的两种趋势性方法,[IT168 资讯]最近,人们在思考如何使用Java来实现云计算,我看到了两种趋势性的方法.它们存在交叉重叠处而并非互相排斥,但总体而言它们在项目方面有 ...

  3. java单例的几种实现方法

    java单例的几种实现方法: 方式1: public class Something { private Something() {}private static class LazyHolder { ...

  4. java replace stringbuilder_Java StringBuilder replace()方法

    Java StringBuilder replace()方法 java.lang.StringBuilder.replace() 方法按照这个顺序,在指定的字符串的子字符串替换字符.子串开始在指定st ...

  5. java LinkedLis t的26种使用方法

    LinkedList类是双向列表,列表中的每个节点都包含了对前一个和后一个元素的引用. LinkedList的构造函数如下 1. public LinkedList():  --生成空的链表 2. p ...

  6. Java list三种遍历方法性能比较

    从c/c++语言转向java开发,学习java语言list遍历的三种方法,顺便测试各种遍历方法的性能,测试方法为在ArrayList中插入1千万条记录,然后遍历ArrayList,发现了一个奇怪的现象 ...

  7. Java动态代理的两种实现方法

    转载自 http://blog.csdn.net/HEYUTAO007/article/details/49738887 AOP的拦截功能是由java中的动态代理来实现的.说白了,就是在目标类的基础上 ...

  8. java解析xml的4种经典方法

    ========================================== xml文件 <?xml version="1.0" encoding="GB2 ...

  9. java二维数组三种初始化方法(实例)

    初始化方法: 1.使用大括号直接赋值,适合已经确定知道数组元素的情况 2.给定二维数组的大小 3.数组第二维的长度可变化,未改变 代码举例如下: public class NewArray {publ ...

最新文章

  1. 如何删除chrome地址栏里面曾经输错的地址
  2. 【Windows 逆向】使用 CE 工具挖掘关键数据内存真实地址 ( 完整流程演示 | 查找临时内存地址 | 查找真实指针地址 )
  3. 多线程开发之---线程等待
  4. ID3DXMesh的数据导出和导入
  5. OpenCASCADE绘制测试线束:几何命令之展示
  6. 【转】BMP图像文件格式
  7. java分布式对象RMI应用测试用例
  8. 一个很有深度的C++内存问题---GDB调试(一)
  9. Eureka整合sidecar异构调用
  10. 【luogu3368】模板 树状数组 2
  11. 关于Java适配器模式,你该了解这些
  12. 其他 | 狼人杀入门
  13. 声声慢 - 程序人生
  14. [DP] UOJ #311. 【UNR #2】积劳成疾
  15. 不用找,你想要的卡车 SolidWorks模型素材都在这里
  16. win10 无法删除 注册表 蓝牙_编辑设置Win10删除蓝牙设备后无法重新添加的修复办法...
  17. windows server 2012 R2登录密码忘了怎么办呢?
  18. @3-1 CCF 2020-09-1 称检测点查询
  19. 宜家IKEA EDI IFTMBF运输预定请求详解
  20. 技术评审到底需要评审哪些东西

热门文章

  1. outlook反应慢的原因_亲子游戏丨孩子反应慢,动作迟钝?父母一定要多与孩子玩这些游戏!...
  2. 小P的故事——神奇的Dota(完全背包)
  3. Unity3D + luaframework如何做到一键打包
  4. X86逆向12:内存补丁的制作
  5. 2020年11月信息系统项目管理师真题(综合+案例)
  6. Motion Blur 运动模糊 后期处理系列6
  7. GoogleDrive转存别人分享的文件到自己的网盘
  8. 移动卡(非全球通)欠费停机3个月后自动销号无影响
  9. 计算机辅助设计及仿真,控制系统的数字仿真及计算机辅助设计.pdf
  10. win10更新双系统启动选项消失得解决方案