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)
    
  • 相关阅读:
    商场活动|简单易用|可下载试用|复用转盘抽奖软件
    js dictionary
    财务大写
    SET ANSI_NULLS ON ……
    批量生成clr脚本
    Git
    CTE递归查询
    jquery 巧用json传参
    个人犯的一个golang routine错误
    .NET实现自动编译
  • 原文地址:https://www.cnblogs.com/zpKang/p/12898844.html
Copyright © 2011-2022 走看看