package LC20130929;
/**
 * 字符串处理类: StringBuffer ~~ StringBuilder 〉〉 String   效果一样但是,性能却大不一样!
            前面两个 不定。有时StringBuffer 比较快,有时StringBuilder类比较快!!
                StringBuffer 是StringBuilder的前身;
                StringBuffer可以允许多个线程进行增加或者移除字符操作。
                StringBuilder在一个线程里编辑时使用    
 * @author Long-Cong
 */
public class StringPkStringBuffer {
    public static void main(String[] args)
    {
        TestAdd();
    }
    public static void TestAdd()
    {
     String str = new String();
     StringBuffer strbuff = new StringBuffer();
     
    long [] timeBegin = new long [3]; 
    long [] timeEnd = new long [3];
    // String
    timeBegin[0] = System.currentTimeMillis() ;
    for(int i=0;i<80000;i++)
        str = str + i ;
    timeEnd[0] = System.currentTimeMillis() ;
    
    // StringBuffer    
    timeBegin[1] = System.currentTimeMillis() ;
    for(int i=0;i<80000;i++)
        strbuff = strbuff.append(i) ;
    timeEnd[1] = System.currentTimeMillis() ;
 
    StringBuilder strbuilder = new StringBuilder();
    // StringBuilder    
    timeBegin[2] = System.currentTimeMillis() ;
    for(int i=0;i<80000;i++)
        strbuilder = strbuilder.append(i) ;
    timeEnd[2] = System.currentTimeMillis() ;
    
    System.out.println("使用String进行80000次连接耗时: "+(timeEnd[0]-timeBegin[0])+"ms");
    System.out.println("使用StringBuffer进行80000次连接耗时: "+(timeEnd[1]-timeBegin[1])+"ms");
    System.out.println("使用StringBuilder进行80000次连接耗时: "+(timeEnd[2]-timeBegin[2])+"ms");
    }
}
 
结果:
 
使用String进行80000次连接耗时: 31594ms
使用StringBuffer进行80000次连接耗时: 19ms

使用StringBuilder进行80000次连接耗时: 8ms

 
finalize()方法
当对象被回收时自动调用。可以重写了它,做一些自己的关闭处理。

String类-StringBuffer类-StringBuilder类的比较的更多相关文章

  1. String、StringBuffer和StringBuilder类的区别

    Java提供了String.StringBuffer和StringBuilder类来封装字符串,并提供了一系列操作字符串对象的方法. 它们的相同点是都用来封装字符串:都实现了CharSequence接 ...

  2. JAVA String、StringBuffer、StringBuilder类解读

    JAVA String.StringBuffer.StringBuilder类解读 字符串广泛应用 在 Java 编程中,在 Java 中字符串属于对象,Java 提供了 String 类来创建和操作 ...

  3. 浅谈java中的String、StringBuffer、StringBuilder类的区别以及关系

    在java中最常见的使用就是对字符串的操作:首先先说一下对字符串的理解:字符串就是一连串字符序列,Java提供了String和StringBuffer两个类来封装字符串,并提供一系列方法来操作字符串对 ...

  4. Java基础知识(JAVA中String、StringBuffer、StringBuilder类的区别)

    java中String.StringBuffer.StringBuilder是编程中经常使用的字符串类,他们之间的区别也是经常在面试中会问到的问题.现在总结一下,看看他们的不同与相同. 1.可变与不可 ...

  5. Java笔记——String、StringBuffer和StringBuilder类

    String类是不可变类,即一旦一个String对象被创建以后,包含在这个对象中的字符串序列是不可改变的,直至这个对象被销毁.   StringBuffer对象则代表一个字符序列可变的字符串,当一个S ...

  6. Java ——String 类 StringBuffer 和 StringBuilder类 随机字符

    本节重点思维导图 String 类 创建字符串 String str = "I love ai"; 在代码中遇到字符串常量时,"I love ai",编译器会使 ...

  7. 【JAVA中String、StringBuffer、StringBuilder类的使用】

    一.String类概述 1.String对象一旦创建就不能改变. 2.字符串常量池. 字符串常量池的特点:池中有则直接使用,池中没有则创建新的字符串常量. 例1: public class Strin ...

  8. 总结 String、StringBuffer与StringBuilder类中常用的方法

    一.String类的常用方法 1.获取: 1)获取字符串str长度 int i = str.length(); 2)根据位置(index)获取字符 char c = str.charAt(index) ...

  9. StringBuffer和StringBuilder类

    对字符串进行修改的时候,需要使用StringBuffer和StringBuilder类(String类是不可改变的,一旦创建了String对象,那它的值就无法改变了). 和String类不同的是,St ...

  10. 深入了解String,StringBuffer和StringBuilder三个类的异同

    Java提供了三个类,用于处理字符串,分别是String.StringBuffer和StringBuilder.其中StringBuilder是jdk1.5才引入的. 这三个类有什么区别呢?他们的使用 ...

随机推荐

  1. AssassinGo: 基于Go的高并发可拓展式Web渗透框架

    转载自FreeBuf.COM AssassinGo是一款使用Golang开发,集成了信息收集.基础攻击探测.Google-Hacking域名搜索和PoC批量检测等功能的Web渗透框架,并且有着基于Vu ...

  2. Java学习笔记-对象与垃圾回收

    Java存在垃圾回收机制,JVM会去回收垃圾,释放资源,而不是像C++一样有程序员去完成 垃圾回收机制的特点 垃圾回收机制只负责回收堆内存中的对象,不会回收任何物理资源(例如数据库连接.网络IO等资源 ...

  3. 教程3 -如何与dotmemory内存优化交通

    在本教程中,我们将看到如何使用dotmemory优化你的应用程序的内存使用情况. 我们所说的什么“优化内存使用”?像在任何操作系统的过程中,垃圾收集(GC)消耗系统资源.逻辑很简单:更多的藏品GC已作 ...

  4. Junk-Mail Filter 【并查集虚父节点】

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2473 题目大意: n个点,m个操作,操作时,输入M a b,表示a, b在一个集合里, 输入S a 表 ...

  5. SQL SERVER YEAR函数

    定义: YEAR函数返回指定日期的年的部分 语法: YEAR(date) 参数: ①date参数是合法的日期表达式. 返回值: int型数据 例:  声明:本文是本人查阅网上及书籍等各种资料,再加上自 ...

  6. spring mvc 简单实现及相关配置实现

    配置文件 actio.xml <?xml version="1.0" encoding="UTF-8"?> <controller> & ...

  7. IPv4-构造超网

    5台PC和两个路由器 PC  设置  IP地址     子网掩码    默认网关 路由器设置    接口的IP地址  子网掩码     static(网络   掩码  下一跳) PC1  ping  ...

  8. Linux系列之压缩与解压

    1.压缩技术 1.常用命令实例 1.zip格式的压缩与解压缩 zip是压缩指令,unzip是解压指令.zip指令既可以压缩文件,也可以压缩目录.压缩会自动保留源文件,解压会自动保留压缩文件. zip  ...

  9. 2019南昌网络赛  I. Yukino With Subinterval 树状数组套线段树

    I. Yukino With Subinterval 题目链接: Problem Descripe Yukino has an array \(a_1, a_2 \cdots a_n\). As a ...

  10. CF1032B Personalized Cup

    一个多月前写的题,既然没人写题解,那蒟蒻就写一篇吧 基本思路 既然是输出任意一个解,那么号的位置在那里是没有关系的.我的思路是默认*号在最后面,然后对输入的字符串输出的行数进行分类. 代码 #incl ...