Skip to content

StringConcat

kcp edited this page Nov 21, 2020 · 3 revisions

title: StringConcat date: 2019-04-19 13:04:48 tags: categories:

目录 start

  1. 字符串拼接
    1. StringBuffer 和 StringBuilder

目录 end|2020-11-02 23:23|


字符串拼接

  1. 当有少量连接操作时,使用 +
    • 如果都是字面量,编译器会直接连接,如果包含变量,编译器会自动替换为 StringBuilder append 方式
  2. 单线程下有大量连接操作时,使用 StringBuilder
  3. 多线程下有大量连接操作时,使用 StringBuffer

StringBuffer 和 StringBuilder

参考博客

StringBuffer 是线程安全的, StringBuilder 不是

  • 为何在拼接时, StringBuider 会比直接使用String更好(在循环体中)
    • 因为用 String 会产生大量常量, StringBuilder StringBuffer 都是使用的字符数组来存储内容, 追加仅仅是扩容字符数组(实现在抽象类 AbstractStringBuilder 中)
    • StringBuilder StringBuffer 都是继承于它, Buffer 和 Builder 区别仅仅是 append 方法上加了 synchronized 关键字

Summary

Clone this wiki locally