String, StringBuffer, and StringBuilder

Java 语言中字符串处理相关的原生类有三个:String, StringBuffer, and StringBuilder. 它们之间有联系,有区别。String 可以成为「字符串常量类」,一旦创建即不可改变,如果对字串有改变,做法也是 new 一个对象,然后再把指针赋给变量。而StringBuffer, StringBuilder 都可以称为「字符串变量类」,是用于拼接字串时节约内存而出现的,但 StringBuffer 是线程安全的,而 StringBuilder 不是。

java.lang.String 的终止符是什么?

其实这是个伪问题。java.lang.String 类型的对象根本就没有所谓的终止符号,String 是一个 immutable 的对象。这个 C 里的字符串不一样,C 里面的字符串,不过是一个 char 数组而已,并且以'\0'结尾。

查查 JDK 的 API 文档就知道,String 类里有多少方法,要是 String 只是个字符数组,可能吗?

String 可以被继承吗?

String是一个类,而不是接口,这里说的不能被集成指的是不能extend。

String类不能extend,因为它是final的。

String的完整签名是

public final class Stringextends Objectimplements Serializable, Comparable<String>, CharSequence