java 清空stringbuilder_java stringbuilder 3种清空方法性能比较
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种清空方法性能比较相关推荐
- Java动态代理的两种实现方法:JDK动态代理和CGLIB动态代理
Java动态代理的两种实现方法:JDK动态代理和CGLIB动态代理 代理模式 JDK动态代理 CGLIB动态代理 代理模式 代理模式是23种设计模式的一种,指一个对象A通过持有另一个对象B,可以具有B ...
- 用java实现云计算的两种趋势性方法
本文讲的是用java实现云计算的两种趋势性方法,[IT168 资讯]最近,人们在思考如何使用Java来实现云计算,我看到了两种趋势性的方法.它们存在交叉重叠处而并非互相排斥,但总体而言它们在项目方面有 ...
- java单例的几种实现方法
java单例的几种实现方法: 方式1: public class Something { private Something() {}private static class LazyHolder { ...
- java replace stringbuilder_Java StringBuilder replace()方法
Java StringBuilder replace()方法 java.lang.StringBuilder.replace() 方法按照这个顺序,在指定的字符串的子字符串替换字符.子串开始在指定st ...
- java LinkedLis t的26种使用方法
LinkedList类是双向列表,列表中的每个节点都包含了对前一个和后一个元素的引用. LinkedList的构造函数如下 1. public LinkedList(): --生成空的链表 2. p ...
- Java list三种遍历方法性能比较
从c/c++语言转向java开发,学习java语言list遍历的三种方法,顺便测试各种遍历方法的性能,测试方法为在ArrayList中插入1千万条记录,然后遍历ArrayList,发现了一个奇怪的现象 ...
- Java动态代理的两种实现方法
转载自 http://blog.csdn.net/HEYUTAO007/article/details/49738887 AOP的拦截功能是由java中的动态代理来实现的.说白了,就是在目标类的基础上 ...
- java解析xml的4种经典方法
========================================== xml文件 <?xml version="1.0" encoding="GB2 ...
- java二维数组三种初始化方法(实例)
初始化方法: 1.使用大括号直接赋值,适合已经确定知道数组元素的情况 2.给定二维数组的大小 3.数组第二维的长度可变化,未改变 代码举例如下: public class NewArray {publ ...
最新文章
- 如何删除chrome地址栏里面曾经输错的地址
- 【Windows 逆向】使用 CE 工具挖掘关键数据内存真实地址 ( 完整流程演示 | 查找临时内存地址 | 查找真实指针地址 )
- 多线程开发之---线程等待
- ID3DXMesh的数据导出和导入
- OpenCASCADE绘制测试线束:几何命令之展示
- 【转】BMP图像文件格式
- java分布式对象RMI应用测试用例
- 一个很有深度的C++内存问题---GDB调试(一)
- Eureka整合sidecar异构调用
- 【luogu3368】模板 树状数组 2
- 关于Java适配器模式,你该了解这些
- 其他 | 狼人杀入门
- 声声慢 - 程序人生
- [DP] UOJ #311. 【UNR #2】积劳成疾
- 不用找,你想要的卡车 SolidWorks模型素材都在这里
- win10 无法删除 注册表 蓝牙_编辑设置Win10删除蓝牙设备后无法重新添加的修复办法...
- windows server 2012 R2登录密码忘了怎么办呢?
- @3-1 CCF 2020-09-1 称检测点查询
- 宜家IKEA EDI IFTMBF运输预定请求详解
- 技术评审到底需要评审哪些东西
热门文章
- outlook反应慢的原因_亲子游戏丨孩子反应慢,动作迟钝?父母一定要多与孩子玩这些游戏!...
- 小P的故事——神奇的Dota(完全背包)
- Unity3D + luaframework如何做到一键打包
- X86逆向12:内存补丁的制作
- 2020年11月信息系统项目管理师真题(综合+案例)
- Motion Blur 运动模糊 后期处理系列6
- GoogleDrive转存别人分享的文件到自己的网盘
- 移动卡(非全球通)欠费停机3个月后自动销号无影响
- 计算机辅助设计及仿真,控制系统的数字仿真及计算机辅助设计.pdf
- win10更新双系统启动选项消失得解决方案