常见的几种字符串及其区别

常见字符串类
String
StringBuffer
StringBuilder
作用
String: 不可变字符串,底层使用的是字符数组保存的字符串

private final char value[]


StringBuffer:可变字符串,继承自AbstractorBuilder,可变长,底层也是字符串数组

private char value[]

StringBuilder:可变字符串,继承自AbstractorBuilder,可变长,底层也是字符串数组。

区别
1. 可变性
String:不可变
StringBuffer和StringBuilder都可变,默认大小16个字节,扩容为原长的2倍+2.

2. 线程安全
String: 对象不可变,安全
StringBuilder:没对方法加锁,线程不安全。
StringBuffer:对方法加了同步锁,线程安全。

3.相同性
String,StringBuffer,StringBuilder都实现了CharSequence接口。
CharSequence是一个接口,它只包括length(), charAt(int index), subSequence(int start, int end)这几个API接口 。

4.性能损耗
String > StringBuffer > StringBuilder
不过性能损耗不能单纯地论,可以分为多个场景
字符串拼接很少的常见:建议String
字符串拼接很多并且线程安全:建议StringBuilder
字符串拼接很多并且线程不安全:建议StringBuffer

相关推荐

  1. 常见字符串及其区别

    2024-04-08 04:42:01       17 阅读
  2. 常见算法

    2024-04-08 04:42:01       30 阅读
  3. 常见算法排序(C#)

    2024-04-08 04:42:01       32 阅读
  4. 常见路径规划算法

    2024-04-08 04:42:01       17 阅读
  5. pcb常见认证

    2024-04-08 04:42:01       14 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-08 04:42:01       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-08 04:42:01       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-08 04:42:01       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-08 04:42:01       18 阅读

热门阅读

  1. Linux介绍

    2024-04-08 04:42:01       14 阅读
  2. 记录CodeMirror一些常用的配置选项

    2024-04-08 04:42:01       18 阅读
  3. AI创业机会的探索

    2024-04-08 04:42:01       16 阅读
  4. MySQL-对象

    2024-04-08 04:42:01       14 阅读
  5. C++20 semaphore(信号量) 详解

    2024-04-08 04:42:01       13 阅读
  6. P1162 填涂颜色

    2024-04-08 04:42:01       18 阅读
  7. make命令简介

    2024-04-08 04:42:01       15 阅读
  8. 大学课堂点名程序

    2024-04-08 04:42:01       13 阅读
  9. Docker 入门

    2024-04-08 04:42:01       14 阅读
  10. 【Qt\C++】二维图形化故障树

    2024-04-08 04:42:01       12 阅读