在 Java
中字符串属于对象,Java
提供了 String
类来创建和操作字符串。String
类是不可变类,即一旦一个 String
对象被创建以后,包含在这个对象中的字符序列是不可改变的,直至这个对象被销毁。
Java
提供了两个可变字符串类 StringBuffer
和 StringBuilder
,中文翻译为“字符串缓冲区”。
StringBuilder
类是 JDK 1.5
新增的类,它也代表可变字符串对象。实际上,StringBuilder
和 StringBuffer
功能基本相似,方法也差不多。不同的是,StringBuffer
是线程安全的,而 StringBuilder
则没有实现线程安全功能,所以性能略高。因此在通常情况下,如果需要创建一个内容可变的字符串对象,则应该优先考虑使用 StringBuilder
类。
StringBuffer
、StringBuilder
、String
中都实现了 CharSequence
接口。CharSequence
是一个定义字符串操作的接口,它只包括
- length()
- charAt(int index)
- subSequence(int start, int end)
这几个 API。
String
直接实现了 CharSequence
接口,StringBuilder
和 StringBuffer
都是可变的字符序列,它们都继承于 AbstractStringBuilder
,实现了 CharSequence
接口。