美文网首页
String,StringBuilder,StringBuffe

String,StringBuilder,StringBuffe

作者: wervy | 来源:发表于2019-12-19 14:05 被阅读0次

String 拼接字符串每次都会创建新的对象,速度最慢
StringBuilder 线程不安全,适合在单线程中拼接字符串
StringBuffer 线程安全,适合多线程中使用

我们在代码中测试下使用效率:

/**
     * 用String拼接字符串
     */
    public static void testStringJoint(){

        String strFinal = "abcdefghijklmnopqrstovwxyz";
        String a = "";
        Random rand = new Random();
        long startTime = System.currentTimeMillis();
        for (int i = 0; i <10000; i++){
            int randInt = rand.nextInt(10);
            a +=  strFinal.substring(randInt, randInt + 14);
        }
        long endTime = System.currentTimeMillis();
        System.out.println(endTime-startTime);
    }

    /**
     * 用String拼接字符串
     */
    public static void testStringBuilder(){

        String strFinal = "abcdefghijklmnopqrstovwxyz";
        StringBuilder sb = new StringBuilder();
        Random rand = new Random();
        long startTime = System.currentTimeMillis();
        for (int i = 0; i <10000; i++){
            int randInt = rand.nextInt(13);
            sb.append(strFinal.substring(randInt, randInt + 14));
        }
        long endTime = System.currentTimeMillis();
        System.out.println(endTime-startTime);
    }

返回结果如下:


image.png

循环次数为10000次的时候,用String拼接的时间是923ms,而StringBuilder的时间是1ms,这完全不在一个数量级了

相关文章

网友评论

      本文标题:String,StringBuilder,StringBuffe

      本文链接:https://www.haomeiwen.com/subject/hvlmnctx.html