0%

java | String、StringBuffer和StringBuilder类的区别

Java 中字符串属于对象,Java 提供了 String 类来创建和操作字符串。String 类是不可变类,即一旦一个 String 对象被创建以后,包含在这个对象中的字符序列是不可改变的,直至这个对象被销毁。

Java 提供了两个可变字符串类 StringBufferStringBuilder,中文翻译为“字符串缓冲区”。

StringBuilder 类是 JDK 1.5 新增的类,它也代表可变字符串对象。实际上,StringBuilderStringBuffer 功能基本相似,方法也差不多。不同的是,StringBuffer 是线程安全的,而 StringBuilder 则没有实现线程安全功能,所以性能略高。因此在通常情况下,如果需要创建一个内容可变的字符串对象,则应该优先考虑使用 StringBuilder 类。

StringBufferStringBuilderString 中都实现了 CharSequence 接口。CharSequence 是一个定义字符串操作的接口,它只包括

  • length()
  • charAt(int index)
  • subSequence(int start, int end)

这几个 API。

String 直接实现了 CharSequence 接口,StringBuilderStringBuffer 都是可变的字符序列,它们都继承于 AbstractStringBuilder,实现了 CharSequence 接口。

请我喝杯咖啡吧~