`
wuzhenzhen0215
  • 浏览: 1338 次
  • 性别: Icon_minigender_1
  • 来自: 无锡
文章分类
社区版块
存档分类
最新评论

Java 5种 字符串 拼接方式 性能 比较

阅读更多

package com.niit.test;

/** 
 * @(#)TestString.java 
 *  
 */  
import java.util.*;  
    
  
//首先System.currentTimeMillis()产生一个当前的毫秒,这个毫秒其实就是自1970年1月1日0时起的毫秒...Date()其实就是相当于Date(System.currentTimeMillis());...
/**
 * Java 5种 字符串 拼接方式 性能 比较
 */
public class TestString {  
          
    /** 
     * Creates a new instance of <code>TestString</code>. 
     */  
    public TestString() {  
    }  
      
    /** 
     * @param args the command line arguments 
     */  
    public static void main(String[] args) {  
        // TODO code application logic here  
        Test();testConcat();testJoin() ;testStringBuffer();  
        testStringBuilder();  
    }  
      
    //String 测试使用 + 号 1  
    public static void   Test()  
    {  
        String s = "";       
        long ts = System.currentTimeMillis();       
        for (int i = 0; i < 10000; i++) {       
            s = s + String.valueOf(i);       
        }       
        long te = System.currentTimeMillis();       
        System.out.println("时间差1:"+(te-ts));  
    }  
      
      
        //String 测试使用Concat 2  
    public  static 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();    
        System.out.println("时间差2:"+(te-ts));  
          
    }      
          
        //String 测试使用泛型 3  
       public static  void testJoin() {       
        List<String> list = new ArrayList<String>();       
        long ts = System.currentTimeMillis();       
        for (int i = 0; i < 10000; i++) {       
            list.add(String.valueOf(i));       
        }       
        long te = System.currentTimeMillis();  
        System.out.println("时间差3:"+(te-ts));    
    }       
          
        //String 测试使用 StringBuffer  4  
    public static  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(); 
     System.out.println("时间差4:"+(te-ts));      
    }       
          
    //String 测试使用 StringBuilder  5  
     public  static  void testStringBuilder() {       
        StringBuilder sb = new StringBuilder();       
        long ts = System.currentTimeMillis();       
        for (int i = 0; i < 100000; i++) {       
            sb.append(String.valueOf(i));       
        }       
        sb.toString();       
        long te = System.currentTimeMillis(); 
       System.out.println("时间差5:"+(te-ts));          
    }         
          
          
          
        //运行结果  
        /* 
            
            时间差1:3016 
            时间差2:625 
            时间差3:0 
            时间差4:15 
            时间差5:47            100000 
             
             
            10000 
            时间差1:3016 
            时间差2:625 
            时间差3:0 
            时间差4:0 
            时间差5:0 
             
             
         */  
           
     /* 
 特别注意的是:  
         
        StringBuilder 循环的次数是其它的10倍, 
        如果是一样,那么返回 0,可见StringBuilder 的速度之快。  
 
 
总结:  
 
        用 + 的方式效率最差,concat由于是内部机制实现,比+的方式好些。  
        Join 和 StringBuffer,相差不大,Join方式要快些, 
        可见这种JavaScript中快速拼接字符串的方式在Java中也非常适用。  
        StringBuilder 的速度最快,但其有线程安全的问题, 
        而且只有JDK5 以上 支持。 
        */  
       
}  
分享到:
评论

相关推荐

    JAVA的字符串拼接与性能

    JAVA的字符串拼接与性能 概述:本文主要研究的是JAVA的字符串拼接的性能,原文中的测试代码在功能上并不等价,导致concat的测试意义不大。不过原作者在评论栏给了新的concat结果,如果有兴趣的同学建议自己修改代码...

    JAVA的字符串拼接[参照].pdf

    1. **字符串拼接操作符 (+)**: 这是最直观且简单的字符串拼接方式,适用于少量或静态字符串的连接。然而,每次使用`+`操作符时,如果涉及到字符串常量,Java会创建一个新的字符串对象,这在循环中会引发大量的对象...

    java中的字符串处理

    5. **字符串转换**:Java提供了一种简便的方式将其他数据类型转换为字符串形式,这通常是通过调用`toString()`方法实现的,例如: ```java int i = 42; String s5 = i.toString(); // 将整数转换为字符串 ``` 6...

    java通用字符串连接

    在Java编程中,字符串连接是常见的操作,尤其是在处理...通过这种方式,`PowerJoin`类提供了灵活性,不仅在连接方式上,也在处理不同类型的集合数据时,可以根据需求定制字符串提取的逻辑,使得代码更加简洁和高效。

    JAVA 字符串 操作

    - `StringBuilder`和`StringBuffer`类:用于大量字符串拼接,线程安全,性能优于`+`。 5. 查找与替换: - `indexOf()`:查找子字符串首次出现的位置。 - `lastIndexOf()`:查找子字符串最后一次出现的位置。 - ...

    java实验-字符串.docx

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

    Java 字符串连接的性能问题分析

    "Java 字符串连接的性能问题分析" Java 字符串连接的性能问题分析是 Java 开发中一个常见的问题,特别是在大规模的场景中。 Java 中使用 + 作为字符串连接符是把多个字符串合并成一个字符串的方便途径,但是在大...

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

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

    java 创建字符串类

    Java提供了两种主要的方式来创建字符串:通过`String`类的构造方法和使用`StringBuilder`或`StringBuffer`类。以下是对这些知识点的详细解释: 1. **String类**: - **不可变性**:Java中的`String`对象是不可变的...

    JAVA 字符串应用笔记

    Java中有两种创建字符串的方式:`new String()`构造器和字面量`"..."`。字面量方式会创建一个常量字符串,存储在字符串池中;而构造器则会在堆上创建对象。 2. **字符串不可变性**: Java中的字符串是不可变的,...

    Java 实例 - 字符串性能比较测试源代码-详细教程.zip

    相比传统的字符串拼接方式,`StringJoiner`在某些场景下能提供更好的性能和可读性。 最后,我们会探讨Java 8引入的流(Stream)API在处理字符串时的应用。利用流可以实现简洁且高效的字符串处理,例如使用`Collectors...

    java 去掉重复字符 三个方法

    总结来说,去除Java字符串中的重复字符有多种途径,包括使用HashSet、StringBuilder和Stream API。每种方法都有其适用场景和优缺点。选择哪种方法取决于代码的上下文、性能需求以及对Java特性的熟悉程度。学习这些...

    java字符串实验题目

    这时,StringBuilder和StringBuffer类就派上用场了,它们提供了可变的字符串操作,适合在循环中进行字符串拼接,性能优于使用"+"运算符。 Java异常处理也是编程中的重要组成部分。在处理字符串相关的问题时,可能会...

    SQL2JAVA-java字段串代码拼接小工具

    在Java中,有多种方式可以实现字符串拼接,比如使用`+`操作符,但当拼接的字符串数量较多时,这种方式的效率较低。因此,更推荐使用`StringBuffer`或`StringBuilder`类,它们提供了一种可扩展且高效的字符串操作方法...

    关于JAVA中的字符串的比较

    在这种情况下,尽管`s`的值与"javablog"相同,但由于`s`是在运行时通过字符串拼接动态创建的新对象,因此`==`比较返回`false`。 #### 使用`intern()`方法 `intern()`方法可以将一个字符串添加到字符串常量池中,...

    Java中字符串的连接和比较.pdf

    本文主要讲解了Java中字符串连接的不同方式以及比较字符串的多种方法。 首先,我们来看字符串的连接。Java提供了多种方式来连接字符串: 1. **使用`+`运算符**:这是最直观的方式,`+`运算符可以用于连接字符串,...

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

    ### Java中使用"+"进行字符串拼接的理解 在Java编程语言中,字符串操作是十分常见的需求之一,尤其是在构建动态内容或处理大量文本数据时。...在实际开发过程中,根据应用场景选择合适的字符串拼接方式是非常重要的。

    java字符串拼接与性能分析详解

    然而,不同的字符串拼接方式在性能上存在显著差异。本篇文章将深入探讨Java中的字符串拼接技术,以及它们对程序效率的影响。 首先,最直观的字符串拼接方式是使用操作符“+”。这种做法简单易懂,但在循环中频繁...

    Java 字符串

    Java提供多种方法来比较字符串: 1. `equals()`:比较字符串的内容是否相等,忽略大小写可使用`equalsIgnoreCase()`。 2. `compareTo()`:根据字典顺序比较字符串,返回值表示字符串的相对位置,0表示相等,负值...

Global site tag (gtag.js) - Google Analytics