`

字符串连接和StringBuffer的对比

阅读更多
function StringBuffer () {
  this._strings_ = new Array();
}

StringBuffer.prototype.append = function(str) {
  this._strings_.push(str);
};

StringBuffer.prototype.toString = function() {
  return this._strings_.join("");
};


var d1 = new Date();
var str = "";
for (var i=0; i < 10000; i++) {
    str += "text";
}
var d2 = new Date();

document.write("Concatenation with plus: "
 + (d2.getTime() - d1.getTime()) + " milliseconds");

var buffer = new StringBuffer();
d1 = new Date();
for (var i=0; i < 10000; i++) {
    buffer.append("text");
}
var result = buffer.toString();
d2 = new Date();

document.write("<br />Concatenation with StringBuffer: "
 + (d2.getTime() - d1.getTime()) + " milliseconds");


IE6:
    Concatenation with plus: 79 milliseconds
    Concatenation with StringBuffer: 46 milliseconds
IE7:
    Concatenation with plus: 78 milliseconds
    Concatenation with StringBuffer: 47 milliseconds
IE8:
    Concatenation with plus: 0 milliseconds
    Concatenation with StringBuffer: 15 milliseconds
FF:
    Concatenation with plus: 3 milliseconds
    Concatenation with StringBuffer: 5 milliseconds
Opera:
    Concatenation with plus: 0 milliseconds
    Concatenation with StringBuffer: 16 milliseconds
Chrome:
    Concatenation with plus: 1 milliseconds
    Concatenation with StringBuffer: 3 milliseconds
Safari:
    Concatenation with plus: 1 milliseconds
    Concatenation with StringBuffer: 1 milliseconds
分享到:
评论

相关推荐

    字符串连接方面测试时间

    这里的标签揭示了文章将比较两种主要的字符串连接方法:使用`StringBuffer`和使用“+”运算符。`StringBuffer`是Java中用于可变字符串操作的类,它提供了线程安全的字符串拼接功能;而“+”运算符则是最直观但可能...

    java字符串连接效率测试代码

    用于测试java字符串几种连接方式的效率,主要包括四类对比测试:1,StringBuffer连接,2,String的Format连接,3,String相加连接,4,StringBuffer的append串起来连接。测试结果如下: String Buffer: 580ms String...

    Java 实例 - 两种连接字符串方法的性能比较源代码-详细教程.zip

    本教程将深入探讨两种主要的字符串连接方式:`StringBuffer` 和 `StringBuilder`,并通过实例源代码进行性能比较。这两种类都是Java中用于构建和连接字符串的高效工具,尤其在循环或大量字符串操作时。 首先,我们...

    再论Javascript下字符串连接的性能

    本文主要探讨了两种主要的字符串连接方法:使用字符串连接运算符和使用数组。这两种方法在不同情况下有不同的性能表现,尤其是在不同的浏览器环境下。 首先,字符串连接运算符 `+` 是最直观且易于理解的方法。在...

    字符串解析

    - 当需要进行大量字符串连接操作时,使用`StringBuffer`或`StringBuilder`(单线程)可以显著提高程序性能,避免创建大量中间`String`对象。 5. 使用建议: - 如果字符串操作较少或者在已知不会改变的情况下,...

    java面试笔试题String 和StringBuffer的区别

    3. **性能优化**:不可变性使得`String`对象可以被编译器优化,例如,字符串连接操作可以通过编译器在运行前进行优化。 然而,`String`的不可变性也意味着每次对其内容进行修改时,都会创建一个新的`String`对象,...

    TestStringAndStringBuilder.rar 字符串优化

    尤其是在循环中进行字符串连接,`StringBuilder`比`String`快得多,因为它避免了不必要的内存分配和垃圾回收。 除了`StringBuilder`,还有一个类似的类`StringBuffer`,它也是可变的,但它是线程安全的。这意味着在...

    java中拼接字符串的5种方法效率对比

    StringUtils 是 Apache Commons Lang 库中的一个工具类,它提供了一个静态方法 join,可以将多个字符串连接起来。这种方法的效率也不错,因为它使用了 StringBuilder 来实现字符串拼接。 第五种方法:使用 ...

    string与stringbuffer的区别

    当涉及到字符串连接操作时,尤其是在循环中,`StringBuffer`(或`StringBuilder`)通常比`String`更高效。这是因为`String`每次连接操作都会创建新的`String`对象,而`StringBuffer`则是在原有的对象基础上进行修改...

    Java语言中StringBuffer的用法

    在Java编程语言中,`StringBuffer`类是一个非常重要的工具,尤其在处理字符串连接操作时。相较于`String`类,`StringBuffer`提供了线程安全的动态字符串构建,避免了频繁创建新对象带来的性能开销。本文将深入探讨`...

    +作为java中的拼接字符串的功能

    该程序通过比较使用"+"和`StringBuffer`进行字符串拼接所需的时间,可以看出后者在性能上明显优于前者。 #### 总结 综上所述,虽然"+"运算符用于字符串拼接非常方便,但在涉及大量拼接操作时应考虑使用`...

    JS 字符串连接[性能比较]

    本文主要讨论了两种主要的字符串连接方式,并通过对比实验展示了它们在处理大量字符串时的效率差异。 首先,JavaScript中的字符串是不可变的,这意味着每次对字符串进行修改(如连接操作)时,都会创建一个新的字符...

    JAVA中String与StringBuffer的区别 自己的学习笔记总结

    2. **性能**:由于 `String` 的不可变性,连续的字符串连接操作会导致频繁地创建新的 `String` 对象,这可能会导致性能问题。例如,在循环中进行字符串拼接时,每次拼接都会创建新的对象。 ```java String ...

    java基础String类选择题练习题

    - **例题**:题目可能会询问“要连接两个字符串,应该使用哪个方法?”或者“如何获取一个字符串中子串的位置?” ### 二、StringBuffer类的使用 #### 1. StringBuffer类概述 - **知识点**:解释`StringBuffer`类...

    String与StringBuffer区别详解

    在Java编程语言中,`String`和`StringBuffer`(在Java 5之后被`StringBuilder`取代,但在多线程环境中仍然使用`StringBuffer`)是处理文本字符串的两个核心类,它们各自有着不同的特性和用途。理解它们的区别对于...

    Java的String类讲解案例代码(String类使用:创建对象、比较、连接、截取、查找和替换、拆分...)StringBuf

    String类使用(创建字符串对象、比较、长度、连接、截取、查找和替换、切割和拆分、和其他类型的转换、格式化、判断、手动入池、其他操作) StringBuffer类 StringBuilder类 String、StringBuffer和StringBuilder的...

    浅谈Java字符串

    值得注意的是,JVM在某些情况下会优化连续的字符串连接操作,将其转化为`StringBuilder`或`StringBuffer`的append操作,从而提高效率。 此外,对于字符串的比较,`==`检查的是两个对象是否指向同一个内存位置,而`...

    jdk6-8String类

    - **StringJoiner** 类:为了解决字符串连接性能问题,1.7引入了`StringJoiner`类,提供了一种高效的方式将多个字符串合并成一个,尤其是在大量字符串连接时。 - **常量池移到堆内存**:为了缓解 PermGen 空间的问题...

    java中 String和StringBuffer的区别实例详解

    例如,我们可以使用String和StringBuffer来实现一个字符串连接操作,例如: public class Test { public static void main(String args[]) { String str = "abc"; StringBuffer sb = new StringBuffer("abc"); ...

    javascript中字符串拼接详解

    在进行性能测试时,可以创建一个字符串拼接的测试环境,对比直接使用字符串拼接和模拟StringBuffer缓冲机制两种方法的执行效率。通过创建Date对象记录操作开始和结束的时间,可以计算出每种方法的执行时间。测试结果...

Global site tag (gtag.js) - Google Analytics