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. webdriervAPI(鼠标事件)

    from  selenium  import  webdriver from selenium.webdriver.common.action_chains import ActionChains 导 ...

  2. Android5以后WebView闪退问题

    Android4.4开发项目中的webview在Android各个版本运行的飞起,可是项目升级,最低版本适配5.0之后,webview各种闪退问题 真让人头大!!!!!!!!!!!!!!! 啊啊啊啊啊 ...

  3. 正式发布! .NET开发控件集ComponentOne 新版本加入Blazor UI

    近期,由葡萄城推出的ComponentOne .NET开发控件集正式发布最新版本! ComponentOne 是一套专注于企业 .NET开发.支持 .NET Core 平台,并完美集成于 Visual ...

  4. SpringBoot传参方式

    地址传参 1.创建一个Action类 package com.lion.action; import org.springframework.stereotype.Controller; import ...

  5. Javaweb入门 JDBC第一天

    JDBC的定义和作用 DBC(Java DataBase Connectivity) Java数据库连接, 其实就是利用Java语言/程序连接并访问数据库的一门技术. 之前我们可以通过cmd或者nav ...

  6. 「java.util.concurrent并发包」之 CopyOnWrite

    一 CopyOnWrite容器概述 Copy-On-Write简称COW,是一种用于程序设计中的优化策略.其基本思路是,从一开始大家都在共享同一个内容,当某个人想要修改这个内容的时候,才会真正把内容C ...

  7. Kubernetes---Service(SVC)服务--ingress api

    对于k8s传统的svc来说 它仅支持4层代理,如果遇到7层代理的话,是没有办法去实现的 k8s官方在1.11中推出了ingress api接口,通过ingress达到7层代理的效果 对于ingress ...

  8. idea 如何加入插件SonarLint

    idea 如何加入插件SonarLint   IDEA的插件安装有两种方法:一是在线安装:二是离线安装,即将插件的安装包下载以后从本地安装.   一.在线安装的过程:         1.打开IDEA ...

  9. MySQL create table语法中的key与index的区别

    在create table的语句中,key和index混淆在一起,官方手册中的解释是这样: KEY is normally a synonym for INDEX. The key attribute ...

  10. 排序之快排(JS)

    快速排序(Quicksort)是对冒泡排序的一种改进. 它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分 ...