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
Java中StringBuilder的清空方法比較的更多相关文章
- Java中StringBuilder的清空方法比较
StringBuilder 没有提供clear或empty方法.清空有3种方法:1)使用delete2)新生成一个,旧的由系统自动回收3)使用setLength 将三种方法循环1000万次,代码: p ...
- java中stringBuilder的用法
java中stringBuilder的用法 String对象是不可改变的.每次使用 System.String类中的方法之一时,都要在内存中创建一个新的字符串对象,这就需要为该新对象分配新的空间.在需 ...
- Java中接口和抽象类的比較
Java中接口和抽象类的比較-2013年5月写的读书笔记摘要 1. 概述 接口(Interface)和抽象类(abstract class)是 Java 语言中支持抽象类的两种机制,是Java程序设计 ...
- 【Android】java中调用JS的方法
最近因为学校换了新的教务系统,想做一个模拟登陆功能,发现登陆的账号和密码有一个js脚本来进行加密 整理了一下java中执行JS的方法 智强教务 账号 密码 加密方法 var keyStr = &quo ...
- java中substring的使用方法
java中substring的使用方法 str=str.substring(int beginIndex);截取掉str从首字母起长度为beginIndex的字符串,将剩余字符串赋值给str: str ...
- Java中Set的contains()方法
Java中Set的contains()方法 -- hashCode与equals方法的约定及重写原则 翻译人员: 铁锚 翻译时间: 2013年11月5日 原文链接: Java hashCode() a ...
- java中BorderLayout的使用方法
相关设置: 使用BorderLayout布局上下左右中布局5个按键,单击中间的那个按键时就关闭窗口 代码: /**** *java中BorderLayout的使用方法 * 使用BorderLayout ...
- 【Java】Java中常用的String方法
本文转载于:java中常用的String方法 1 length()字符串的长度 String a = "Hello Word!"; System.out.println(a.len ...
- Java中Set的contains()方法——hashCode与equals方法的约定及重写原则
转自:http://blog.csdn.net/renfufei/article/details/14163329 翻译人员: 铁锚 翻译时间: 2013年11月5日 原文链接: Java hashC ...
随机推荐
- Android 开发笔记 “SharePreference 数据存取”
除了SQLite数据库外,SharedPreferences也是一种轻型的数据存储方式,它的本质是基于XML文件存储key-value键值对数据,通常用来存储一些简单的配置信息.其存储位置在/data ...
- Android 一个改进的okHttp封装库
一.概述 之前写了篇Android OkHttp完全解析 是时候来了解OkHttp了,其实主要是作为okhttp的普及文章,当然里面也简单封装了工具类,没想到关注和使用的人还挺多的,由于这股热情,该工 ...
- poj 3624 Charm Bracelet(区间dp)
题目链接:http://poj.org/problem?id=3624 思路分析: 经典的0-1背包问题: 分析如下: 代码如下: #include <iostream> using na ...
- 在web page中使鼠标右击失效的几种方法
这里主要介绍两种方法,一种是使用js来处理,还有一种是在html属性中设置. 方法一:js 1: <script language="javascript"> docu ...
- 你会用swift创建复杂的加载动画吗(1)
时至今日,iOS 应用商店已经拥有超过了140万 应用,让你自己的应用脱颖而出确实是个不小的挑战.不过,在你的应用掉入默默无闻的大黑洞之前,你拥有一个小小的机遇窗,它能帮你吸引用户的注意. AD: 时 ...
- grub2的/etc/grub.d目录下的脚本文件
00_header,05_debian_theme,10_linux,20_memtest86+,30_os- prober,40_custom这五个脚本对应grub.cfg上的各个部分,有的版本的g ...
- VMware-WorkStation 去掉VM工具栏
链接地址:http://jingyan.baidu.com/article/8275fc86b95c6246a03cf629.html VMware 是目前用得最多的虚拟机.当开启虚拟机的全屏模式时, ...
- 【转】LINUX下一款不错的网站压力测试工具webbench
原文链接:http://blog.csdn.net/xinqingch/article/details/8618704 安装: wget http://blog.s135.com/soft/linux ...
- Python框架 Flask 项目实战教程
本文目的是为了完成一个项目用到的flask基本知识,例子会逐渐加深.最好对着源码,一步一步走.下载源码,运行pip install -r requirements.txt 建立环境python db_ ...
- 为什么使用LUT比GAL 节省资源
为什么使用LUT比GAL 节省资源 A[1:0] B[1:0] 实现一个比较器,如果A=B输出1 否则输出0 传统的GAL 需要 24= 16个存储单元(ROM)来存储结果数据,实现方法 ...