String、StringBuffer和StringBuilder小摘抄

今天在刷编程题的时候遇到了关于StringBuffer的内容,平时经常使用String类,但都没有仔细研究过String、StringBuffer和StringBuilder。下面将这三个类在Java的API文档中的一些重点内容摘抄下来:

String类

  • final关键字修饰,它们的值在创建后不可修改
  • 字符串是常量
  • 字符串缓冲区支持可变字符串

由于String类的不可变,所以它可以共享。例如:

 

     String str = "abc";
 

等效于:

 

     char data[] = {'a', 'b', 'c'};
     String str = new String(data);

Java 语言提供对字符串串联符号("+")以及将其他对象转换为字符串的特殊支持。字符串串联是通过 StringBuilder(或 StringBuffer)类及其 append 方法实现的。字符串转换是通过 toString 方法实现的,该方法由 Object 类定义,并可被 Java 中的所有类继承。

StringBuffer类

  • 线程安全的可变字符串序列,类似于 String 的字符串缓冲区,但不能修改
  • 主要操作是 append 和 insert 方法,可重载这些方法,以接受任意类型的数据
  • 当发生与源序列有关的操作(如源序列中的追加或插入操作)时,该类只在执行此操作的字符串缓冲区上而不是在源上实现同步

StringBuilder类

从 JDK 5 开始,为StringBuffer补充了一个单个线程使用的等价类,即 StringBuilder。与该类相比,通常应该优先使用 StringBuilder 类,因为它支持所有相同的操作,但由于它不执行同步,所以速度更快。

  • 一个可变的字符序列
  • 此类提供一个与 StringBuffer 兼容的 API,但不保证同步
  • 用在字符串缓冲区被单个线程使用的时候
  • 线程不安全的,如果需要多个线程使用时,建议用StringBuffer

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值