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. Flutter之切换导航TabBar组件

    TabController 这是Tab页的控制器,用于定义Tab标签和内容页的坐标,还可配置标签页的切换动画效果等. TabController的创建有两种形式,一种是使用系统的DefaultTabC ...

  2. python-Web-flask-蓝图和单元测试

    4 蓝图和单元测试: 能够使用代码实现蓝图对项目进行模块化 admin=Blueprint('admin',__name__) # 创建一个蓝图对象 @admin.route('/') def adm ...

  3. 深度优先dfs与广度bfs优先搜索总结+例题

    DFS(Deep First Search)深度优先搜索 深度优先遍历(dfs)是对一个连通图进行遍历的算法.它的思想是从一个顶点开始,沿着一条路一直走到底,如果发现不能到达目标解,那就返回到上一个节 ...

  4. spring的控制器如何传递数据到视图

    1.控制器代码 2.传递数据代码 model.addAttribute("name", name); 通过model对象传递

  5. 前端手势控制图片插件书写三(将transform变化应用在图片和canvas画布上)

    注意:transform的scale为负数时,图片会垂直翻转 一.在使用transform将计算得到的变化应用到图片上后,需要考虑到我们每次计算的都是touchmove中本次的差量.在第一次移动过后. ...

  6. Linux 下面安装 nginx 以及进行TCP反向代理、负载均衡的过程

    1. 下载安装nginx 注意 因为stream 并不是 nginx自带的module  所以需要 在安装是 通过 --with 的方式增加上. 下载必要的程序包 # openssl wget htt ...

  7. DISCO Presents Discovery Channel Code Contest 2020 Qual Task E. Majority of Balls

    Not able to solve this problem during the contest (virtual participation). The first observation is ...

  8. springboot+mybatis 用redis作二级缓存

    1.加入相关依赖包: <?xml version="1.0" encoding="UTF-8"?> <project xmlns=" ...

  9. Dijstra_优先队列_前向星

    Dijstra算法求最短路径 具体实现方式 设置源点,将源点从原集u{}中取出并放入新建集s{} 找出至源点最近的点q从原集取出放入新集s{} 由q点出发,更新所有由q点能到达的仍处于原集的点到源点的 ...

  10. dede时间标签

    dedecms首页时间标签:1.12-27 样式([field:pubdate function='strftime("%m-%d",@me)'/]) 2.May 15, 2009 ...