参考链接: Java中的String vs StringBuilder vs StringBuffer

下述文章资料来源于: W3CSCHOOL离线版的Java教程 Java JDK 6.0开发手册 Java开发从入门到精通(陈小玉版)

StringBuffer和String选择的异同 StringBuffer在进行字符串处理时,不生成新的对象,在内存的使用上要优于String类; 二者有一个最显著的区别在于,对于StringBuffer对象的每次修改都会改变对象自身,这点是和String类最大的区别

Java StringBuffer和StringBuilder类 当对字符串进行修改的时候,需要使用StringBuffer和StringBuilder类。

和String类不同的是,StringBuffer和StringBuilder类的对象能够被多次的修改,并且不产生新的未使用对象。

StringBuilder类在Java 5中被提出,它和StringBuffer之间的最大不同在于StringBuilder的方法不是线程安全的(线程安全就是多线程访问时,采用了加锁机制,当一个线程访问该类的某个数据时,进行保护,其他线程不能进行访问直到该线程读取完,其他线程才可使用。不会出现数据不一致或者数据污染。线程不安全就是不提供数据访问保护,有可能出现多个线程先后更改数据造成所得到的数据是脏数据)。

由于StringBuilder相较于StringBuffer有速度优势,所以多数情况下建议使用StringBuilder类。然而在应用程序要求线程安全的情况下,则必须使用StringBuffer类。

在Java中规定,一旦声明String的内容就不可再改变,如果要改变,改变的肯定是String的引用地址。 如果一个字符串需要经常被改变,则必须使用 StringBuffer类。 在String类中可以通过“+”来连接字符串,在StringBuffer中只能使用方法append()来连接字符串。

public class Test{

public static void main(String args[]){

StringBuffer sBuffer = new StringBuffer(" test");

sBuffer.append(" String Buffer");

System.out.println(sBuffer);

}

}

以上实例编译运行结果如下:

test String Buffer

StringBuffer 方法 以下是StringBuffer类支持的主要方法:

序号方法描述1public StringBuffer append(String s) 将指定的字符串追加到此字符序列。2public StringBuffer reverse() 将此字符序列用其反转形式取代。3public delete(int start, int end)4public insert(int offset, int i) 将 int 参数的字符串表示形式插入此序列中。5replace(int start, int end, String str) 使用给定 String 中的字符替换此序列的子字符串中的字符。

下面的列表里的方法和String类的方法类似:  使用append()来连接字符串

public class StringBufferT1{

public static void main(String args[]){

StringBuffer buf = new StringBuffer() ;    // 声明StringBuffer对象

buf.append("Hello ") ;                    // 向StringBuffer中添加内容

buf.append("World").append("!!!") ;        // 可以连续调用append()方法

buf.append("\n") ;                        // 添加一个转义字符

buf.append("数字 = ").append(1).append("\n") ;    // 添加数字

buf.append("字符 = ").append('C').append("\n");     // 添加字符

buf.append("布尔 = ").append(true) ;    // 添加布尔值

System.out.println(buf) ;            // 直接输出对象,调用toString()

}

};

在任意处为StringBuffer添加内容

public class StringBufferT3{

public static void main(String args[]){

StringBuffer buf = new StringBuffer() ;    // 声明StringBuffer对象

buf.append("World!!") ;        // 添加内容

buf.insert(0,"Hello ") ;        // 在第一个内容之前添加内容

System.out.println(buf) ;

buf.insert(buf.length(),"MM~") ;    // 在最后添加内容

System.out.println(buf) ;

}

};

在任意处为StringBuffer添加内容

public class StringBufferT5{

public static void main(String args[]){

StringBuffer buf = new StringBuffer() ;    // 声明StringBuffer对象

buf.append("Hello ").append("World!!") ;        // 向StringBuffer添加内容

buf.replace(6,11,"AAA") ;        // 将world的内容替换

System.out.println("内容替换之后的结果:" + buf) ;    // 输出内容

}

};

从StringBuffer中删除指定范围的字符串

public class StringBufferT7{

public static void main(String args[]){

StringBuffer buf = new StringBuffer() ;    // 声明StringBuffer对象

buf.append("Hello ").append("World!!") ;        // 向StringBuffer添加内容

buf.replace(6,11,"AAA") ;        // 将world的内容替换

String str = buf.delete(6,15).toString() ;    // 删除指定范围中的内容

System.out.println("删除之后的结果:" + str) ;    // 输出内容

}

};

[转载] StringBuffer和StringBuilder类相关推荐

  1. String、StringBuffer、StringBuilder类

    String.StringBuffer.StringBuilder类:java提供了string.stringbuffer两个类来封装字符串,并提供了一系列方法来操作字符串对象. String类是不可 ...

  2. Java 12 - Java StringBuffer和StringBuilder类

    Java StringBuffer和StringBuilder类 当对字符串进行修改的时候,需要使用StringBuffer和StringBuilder类. 和String类不同的是,StringBu ...

  3. JAVA数组Java StringBuffer 和 StringBuilder 类

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/qq_34173549/article/details/80215173 Java StringBuf ...

  4. java stringbuilder换行_初遇Java StringBuffer 和 StringBuilder 类利用 StringBuilder 给TextView实现换行处理...

    当对字符串进行修改的时候,需要使用 StringBuffer 和 StringBuilder 类. 和 String 类不同的是,StringBuffer 和 StringBuilder 类的对象能够 ...

  5. 20191001:String,StringBuffer,StringBuilder类异同辨析

    String,StringBuffer,StringBuilder类异同辨析 框架 String对象的建立方法及底层 StringBuffer与String的区别 StringBuilder与Stri ...

  6. 深入理解String、StringBuffer和StringBuilder类的区别

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

  7. Java String、StringBuffer、StringBuilder类解析

    String.StringBuffer.StringBuilder类解析 概述 String类:代表字符串. 特点 String实现了Serializable接口,表示String是可序列化的 实现了 ...

  8. 【Java】字符串的理解与运用以及StringBuffer 和 StringBuilder 类

    常见字符串求解: 1.长度 用于获取有关对象的信息的方法称为访问器方法. String 类的一个访问器方法是 length() 方法,它返回字符串对象包含的字符数. 2.字符串索引位置的字符 3.提取 ...

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

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

最新文章

  1. 08-dispatch_apply
  2. 兵棋推演有助于我们了解哪些战争知识?
  3. JSONAssert Spring Boot Test
  4. jstl 处理Date 时间
  5. 小大整数对象池及intern机制
  6. centos7调节虚拟机字体_初次安装虚拟机中Ubuntu16.04系统设置的一些小问题(小白教程)...
  7. python-Django环境搭建
  8. 黑客大曝光:VoIP安全机密与解决方案
  9. 软工大二下半年第十四周学习进度
  10. python可迭代对象相关的内建函数_python之函数闭包、可迭代对象和迭代器
  11. c语言用程序判断是否素数,用C语言编写判断一个数是否是素数的程序
  12. php 通过ip获取省份,通过IP获取用户地理位置省份城市的接口使用
  13. jinjia2 本地渲染文本文件核心代码(可以渲染html,xml,txt等等)
  14. matlab mysql建系统_能环水体治理项目(Mysql数据库,Matlab创建GUI界面)【一】
  15. Windows操作系统名称与版本号汇总
  16. 3199. 命令行选项
  17. UKF-MATLAB实现
  18. android 发广播屏蔽home键,如何在Android App中屏蔽(拦截)Home按键及其他按键
  19. 位运算 之(1) 按位与(AND) 操作【转载】
  20. 实现HTTP2.0方式

热门文章

  1. c语言程序算一元二次方程,如何用C语言来计算一元二次方程
  2. php 串口通信例程,HAL库串口通信例程
  3. sqli-lab——Writeup(38~over)堆叠等......
  4. java xml date_W3C XML 模式时间数据类型与java Date进行转换
  5. java jdbc rowset_JAVA基础知识之JDBC——RowSet
  6. python和nltk自然语言处理书评_Python和NLTK自然语言处理
  7. python 最小二乘回归 高斯核_「机器学习」一文读懂线性回归、岭回归和Lasso回归...
  8. c语言的程序结构语序,第3章 C语序结构.doc
  9. java 类 属性数量_跟我学java编程—Java类的属性与成员变量
  10. (转)JVM监控工具介绍