zoukankan      html  css  js  c++  java
  • Java中StringBuilder的清空方法比较

    摘自:http://blog.chinaunix.net/uid-20745012-id-271466.html

    StringBuilder 没有提供clear或empty方法。

    清空有3种方法:

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

      2)使用delete

      3)使用setLength

    将三种方法循环1000万次,代码:

    /**
     * @作者 whs
     * @创建日期 2015年1月30日
     * @版本 V 1.0
     */
    package strdemo;
    
    public class StrBuilder {
    	
    	static String a;
    	static long time;
    	
    	public static void main(String[] args) {
    		StringBuilder sb = new StringBuilder();
    		StringBuilder sb2=new StringBuilder();
    		time = System.currentTimeMillis();
    		for(int i=0;i<10000000;i++){
    			sb.delete(0, sb.length());
    			sb.append("someThi1ng");
    			sb.append("someThi2ng");
    			sb.append("someThi3ng");
    			sb.append("someThi4ng");
    			sb.append("someThi5ng");
    			sb.append("someThi6ng");
    			a = sb.toString();
    		}
    		System.out.println("Way1="+(System.currentTimeMillis()-time));
    
    		time = System.currentTimeMillis();
    		for(int i=0;i < 10000000;i++){
    			sb2.setLength(0);
    			sb2.append("someThin1g");
    			sb2.append("someThin2g");
    			sb2.append("someThin3g");
    			sb2.append("someThin4g");
    			sb2.append("someThin5g");
    			sb2.append("someThin6g");
    			a = sb2.toString();
    		}
    		System.out.println("Way2="+(System.currentTimeMillis()-time));
    		
    		time=System.currentTimeMillis();
    		for(int i=0;i < 10000000;i++){
    			StringBuilder sb3=new StringBuilder();
    			sb3.append("someThing1");
    			sb3.append("someThing2");
    			sb3.append("someThing3");
    			sb3.append("someThing4");
    			sb3.append("someThing5");
    			sb3.append("someThing6");
    			a=sb3.toString();
    		}
    		System.out.println("Way3="+(System.currentTimeMillis()-time));
    		
    	}
    }
    

    注意append的字符串要都不相同,否则会因为java 的String  pool对结果造成影响(即Way1好于Way2)
    结果:

    1. Way1=1672
      Way2=1632
      Way3=2532

     

    可以将各方法多重复几次,点到顺序,等 总体来看:Way2好于Way1好于Way3

  • 相关阅读:
    git 删除已经提交的文件
    IDEA不显示service 服务窗口
    MySQL SQL语句查询结果 多列合并为1列
    Linux远程执行脚本
    mycat 连接命令
    win10 关闭被占用的端口
    ERROR 1045 (HY000): Access denied for user 'root', because password is error
    unblock with 'mysqladmin flush-hosts'
    neo4j数据库cypher查询
    基于websocket的网页实时消息推送与在线聊天(上篇)
  • 原文地址:https://www.cnblogs.com/whsa/p/4262640.html
Copyright © 2011-2022 走看看