zoukankan      html  css  js  c++  java
  • StringBuilder和StringBuffer

    StringBuilder 和 StringBuffer

    java.lang.StringBuilderjava.lang.StringBuffer因为String拼接的时候, 每拼接一次都会创建一个新的字符串, 特别再处理很多字符串拼接的时候, 效率非常慢, StringBuilder一般就是常用来更加快速的拼接字符串, StringBuilder和StringBuffer本质上一样, 都是更为高效的拼接字符串, 但是由于 StringBuilder 相较于 StringBuffer 有速度优势,所以多数情况下建议使用 StringBuilder 类。然而在应用程序要求线程安全的情况下,则必须使用 StringBuffer 类。

    常用方法

    返回值 方法 作用
    StringBuilder append(重载参数) 更加快速的拼接字符串, 一般重载参数最常用的是String类型
    String toString() 把StringBuilder转为String字符串

    性能测试

    StringStringBuilder的测试

    public class Test3_StringBuilder {
    	public static void main(String[] args) {
    		method();
    		method2();
    	}
    
    	// 使用+拼接字符串
    	public static void method() {
    		// 创建字符串
    		String str = "abcdefghijklmn";
    		String res = "";// 定义变量, 记录拼接结果
    		// 把指定的字符串拼接100次并且打印 拼接结果
    		long start  = System.currentTimeMillis(); // 计时开始
    		for (int i = 0; i < 10000; i++) {
    			res = res + str; // 通过+拼接字符串
    		}
    		long end = System.currentTimeMillis(); // 计时结束
    		System.out.println((end-start)/1000.0);
    	}
        
        // 使用StringBuilder拼接字符串
    	private static void method2() {
    		String str = "abcdefghijklmn";
    		StringBuilder sb = new StringBuilder();
    		long start = System.currentTimeMillis();
    		for (int i = 0; i < 10000; i++) {
    			sb.append(str);
    		}
    		long end = System.currentTimeMillis();
    		System.out.println((end - start) / 1000.0);
    	}
    }
    

    测试结果

    0.582 // String 的 + 号拼接字符串(单位: s)
    0.001 // StringBuilder拼接字符串(单位: s)
    
  • 相关阅读:
    shell:定时任务crontab
    shell:采集进程的cpu和内存利用率_随手记1
    临时记录
    python:numpy库和matplotlib库
    python:urllib:HTTPResponse对象的用法
    美国亚马逊图片打不开
    互联网协议
    range 和 xrange
    国内服务器的端口开放问题
    Mac上设置Chrome跨域
  • 原文地址:https://www.cnblogs.com/zpKang/p/12898844.html
Copyright © 2011-2022 走看看