zoukankan      html  css  js  c++  java
  • String、StringBuffer、StringBuilder的区别

      String、StringBuffer、StringBuilder这三个类在字符串处理中都很常用,而且功能上也可以说很相似,那么他们有什么区别呢?

    1、首先String是字符串常量,StringBuffer、StringBuilder是字符串变量。为什么说String是字符串常量,用下面的例子说明。

    1 String t = "ab";
    2 t = t + "c";

    这个例子在JVM中的过程其实是,创建t对象,然后赋值“ab”,再创建一个新的t对象,来赋值“ab”+“c”,所以原先的t对象并没有改变,所以称String为字符串常量。而StringBuffer和StringBuiler操作时是不会产生新的对象,是直接对原对象进行操作。

    2、在执行速度上String<(StringBuffer,StringBuiler)。

    通过第1点可以看出,String在操作时会不断产生新的对象,所以执行效率上StringBuffer和StringBuiler比String高。

    3、StringBuffer是线程安全的,StringBuilder不是线程安全的。

    在单线程情况下两者的速度是相差无几的,但是在多线程的情况下StringBuffer为保证线程的安全性,在必要时会做一些同步的操作,所以速度上StringBuffer<StringBuilder。

    总结:

    1、在做少量字符串操作时优先使用String,在做大量字符串操作时优先使用StringBuffer或StringBuilder。

    2、单线程环境下优先使用StringBuilder,多线程环境下,为了保证线程安全需要牺牲一点速度,优先使用StringBuffer。

  • 相关阅读:
    XNA之3D文字
    SQL2005调用C#编写的DLL
    C#绘图工具之Rotate
    ASP.NET中的WebService
    数据库同步之复制技术
    C#之TCP消息的发送和接受
    Tsql清空表数据的两种方式truncate and delete
    Code First Migrations数据迁移方法
    MSSQLSERVER跨服务器连接
    windows下wget命令行下载工具的使用
  • 原文地址:https://www.cnblogs.com/pcheng/p/6479860.html
Copyright © 2011-2022 走看看