`

java 字符串拼接效率对比

阅读更多

 

package demo;

import java.util.ArrayList;

import java.util.List;

import org.junit.Test;

/**

 * @className:Test203.java

 * @classDescription: 测试字符串拼接效率

 * @author:qiuchen 

 * @createTime:2012-10-9

 */

public class Test{

 

public static void main(String[] args) {

 

}

 

@Test

public void testPlus(){

String s = ""; 

        long begin = System.currentTimeMillis(); 

        for (int i = 0; i < 10000; i++) { 

            s = s + String.valueOf(i); 

        } 

        long end = System.currentTimeMillis();

        System.out.println("+:"+(end - begin));

}

 

@Test

public void testConcat(){

String s = ""; 

        long begin = System.currentTimeMillis(); 

        for (int i = 0; i < 10000; i++) { 

            s = s.concat(String.valueOf(i)); 

        }

        long end = System.currentTimeMillis();

        System.out.println("concat:"+(end - begin)); 

}

 

@Test

public void testAppend(){

StringBuffer s = new StringBuffer(); 

        long begin = System.currentTimeMillis(); 

        for (int i = 0; i < 10000; i++) { 

            s.append(String.valueOf(i));

        }

        long end = System.currentTimeMillis();

        System.out.println("StringBuffer append:"+(end - begin)); 

}

 

@Test

public void testBuilder(){

StringBuilder s = new StringBuilder(); 

        long begin = System.currentTimeMillis(); 

        for (int i = 0; i < 10000; i++) { 

            s.append(String.valueOf(i));

        }

        long end = System.currentTimeMillis();

        System.out.println("StringBuilder append:"+(end - begin)); 

}

 

@Test

public void testAdd(){

List<String> list = new ArrayList<String>(); 

        long begin = System.currentTimeMillis(); 

        for (int i = 0; i < 10000; i++) { 

            list.add(String.valueOf(i));

        }

        long end = System.currentTimeMillis();

        System.out.println("List add:"+(end - begin));

}

 

}

 

+:687

concat:329

StringBuffer append:0

StringBuilder append:0

List add:15

 

 

+:656

concat:344

StringBuffer append:0

StringBuilder append:0

List add:0

 

+:656

concat:313

StringBuffer append:16

StringBuilder append:0

List add:0

 

+:672

concat:328

StringBuffer append:0

StringBuilder append:16

List add:0

 

分享到:
评论

相关推荐

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

    今天,我们将通过测试和分析,比较 Java 中 5 种不同的字符串拼接方法的效率,并探究每种方法背后的实现原理。 第一种方法:使用 + 运算符 在 Java 中,我们可以使用 + 运算符来拼接字符串。这是最简单的方法,但其...

    JAVA 字符串 操作

    在Java编程语言中,字符串...以上只是Java字符串操作的一小部分,实际开发中还有许多其他方法和特性,如国际化(I18N)、正则表达式等,都需要程序员灵活掌握。理解并熟练运用这些操作,能有效提高代码质量和效率。

    java实验-字符串.docx

    而StringBuffer类是可变的,可以使用`append()`方法添加内容,而不必每次都创建新对象,因此在处理大量字符串拼接时,StringBuffer的效率更高。 总结来说,这个实验旨在帮助我们理解和掌握Java中字符串的基本操作,...

    Java 字符串常用方法

    4. **字符串拼接** - `+` 运算符: 可用于连接字符串,例如 `str1 + " " + str2`。 - `concat(String str)`: 直接连接两个字符串。 5. **查找与替换** - `indexOf(String str)`: 查找子字符串第一次出现的位置,...

    JAVA字符串处理函数列表一览

    ### JAVA字符串处理函数列表一览 在Java编程语言中,字符串处理是极其常见且重要的操作之一。字符串类`String`提供了丰富的内置方法来帮助开发者高效地完成各种字符串操作任务。本文将详细解读`String`类中的一些...

    java字符串 详解 java实例20

    Java字符串在编程中扮演着至关重要的角色,它们是程序中数据处理的核心部分,尤其是在文本处理、用户输入验证、数据解析等场景下。本实例“Java字符串详解 Java实例20”将深入探讨Java中的字符串处理机制,包括其...

    java处理字符和字符串课件

    ### Java处理字符和字符串知识点详解 #### 一、概述 在Java编程中,字符和字符串是最常见的数据类型之一。为了方便高效地处理这些数据类型,Java提供了强大的支持,包括`Character`类和`String`类等。这些类位于`...

    关于JDK8中的字符串拼接示例详解

    在Java编程中,字符串拼接是一项常见的操作,但它的效率问题一直备受关注。在JDK 8中,字符串拼接的实现有了进一步的优化,这使得开发者在编写代码时有了更多的选择。本文将深入探讨JDK 8中的字符串拼接方式,以及其...

    浅谈Java字符串Java开发Java经验技巧共11页.p

    标题中的“浅谈Java字符串Java开发Java经验技巧共11页”表明这是一份关于Java编程,特别是关于Java字符串处理的深度技术文档。在Java中,字符串是编程中经常遇到的基本数据类型,对于任何Java开发者来说,理解和掌握...

    JAVA 数组与字符串课程文档

    在处理字符串时,可以使用`StringBuffer`或`StringBuilder`类进行高效的字符串拼接操作,尤其在循环中,这两个类比直接使用`+`操作符更有效率。 数组和字符串在实际编程中常常结合使用,比如在一个字符串数组中存储...

    关于字符串相等的比较

    在Java中,有多种方法可以用来比较两个字符串是否相等: 1. **使用 `equals` 方法:** - 这是最常用的比较两个字符串是否相等的方法。 - 示例中的代码使用了 `s.equals(s2)` 来比较用户输入的字符串 `s` 是否与预...

    JAVA字符串中所用的方法.rar

    以上是Java字符串处理中常用的一些方法,熟练掌握它们将极大地提升代码的效率和质量。通过深入理解和应用这些方法,开发者可以更好地处理和操纵字符串,满足各种编程需求。在实际开发中,我们应根据具体场景选择合适...

    Java字符串使用总结.docx

    ### Java字符串使用总结 #### 一、String 类 在Java中,`String`类并不是基本数据类型,而是一个对象。这意味着所有的字符串字面值(如 `"abc"`)都是作为`String`类的实例来实现的。`String`类的一个关键特性是**...

    Java练习字符串课题的源码

    2. **字符串拼接**:可以使用`+`运算符或者`StringBuilder`/`StringBuffer`类来连接两个或多个字符串。前者适合少量操作,后者在多线程环境中更安全且效率更高。 3. **字符串方法**:`String`类提供了丰富的内置...

    javascript中字符串拼接详解

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

    Java源码海量字符串的快速操作.rar

    对于大量字符串拼接,使用`StringBuilder`或`StringBuffer`比多次使用`+`运算符更高效。两者的区别在于线程安全性:`StringBuilder`是非线程安全的,而`StringBuffer`是线程安全的,但在线程不安全的场景中,`...

    Java字符串及数组操作的实例源码

    总之,这个"Java字符串及数组操作的实例源码"资源涵盖了字符串和数组的基本操作,包括但不限于创建、访问、修改、比较、连接、分割等。通过学习和实践这些示例,开发者可以加深对Java核心特性的理解,提升编程能力。

    Java基础之字符串及String

    在Java中,`+`运算符可以用于字符串拼接。然而,这种拼接方式在底层会多次调用`String`的构造函数,效率较低。如果需要频繁拼接字符串,推荐使用`StringBuilder`或`StringBuffer`类,它们是可变的,可以在原对象上...

    JAVA字符串及习题[归类].pdf

    Java字符串在编程中扮演着重要角色,它们是不可变的对象,这意味着一旦创建,就不能更改其内容。本资料主要涵盖了字符串的比较、转化以及操作运算符的相关知识点。 1. 字符串的比较: Java中提供了两种主要的字符...

    java中英文字符串处理.

    这是Java字符串安全和高效的基础。 1. **创建字符串**:你可以通过`new`关键字创建一个字符串,如`String str = new String("Hello, World!");`,或者直接用双引号创建,如`String str = "Java编程";`。 2. **子串...

Global site tag (gtag.js) - Google Analytics