关于String 拼接字符串的性能问题
博客专区 > SuShine 的博客 > 博客详情
关于String 拼接字符串的性能问题
SuShine 发表于2年前
关于String 拼接字符串的性能问题
  • 发表于 2年前
  • 阅读 4
  • 收藏 0
  • 点赞 0
  • 评论 0

腾讯云 学生专属云服务套餐 10元起购>>>   

package com.example.test;
import android.util.Log;
public class TestString {
  
    public void testPlus() {
        String s = "";
        long ts = System.currentTimeMillis();
        for (int i = 0; i < 10000; i++) {
            s = s + String.valueOf(i);
        }
        long te = System.currentTimeMillis();
        Log.e("+cost {} ms", te - ts + "");
    }
    
    public void testConcat() {
        String s = "";
        long ts = System.currentTimeMillis();
        for (int i = 0; i < 10000; i++) {
            s = s.concat(String.valueOf(i));
        }
        long te = System.currentTimeMillis();
        Log.e("concat cost {} ms", te - ts + "");
    }
    
    
    public void testStringBuffer() {
        StringBuffer sb = new StringBuffer();
        long ts = System.currentTimeMillis();
        for (int i = 0; i < 10000; i++) {
            sb.append(String.valueOf(i));
        }
        sb.toString();
        long te = System.currentTimeMillis();
        Log.e("StringBuffer cost {} ms", te - ts + "");
    }
    
    public void testStringBuilder() {
        StringBuilder sb = new StringBuilder();
        long ts = System.currentTimeMillis();
        for (int i = 0; i < 10000; i++) {
            sb.append(String.valueOf(i));
        }
        sb.toString();
        long te = System.currentTimeMillis();
        Log.e("StringBuilder cost {} ms", te - ts + "");
    }
}

会发现其实 + 和 stringbuilder在拼接很多的字符串的时候性能差距非常大,

当然 如果拼接两个或者很少的字符串效果就不明显了,:

拼接两个字符串的时候,两种方式都需要创建三个String对象

共有 人打赏支持
粉丝 118
博文 311
码字总数 79329
×
SuShine
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: