1. String类:
位于java.lang包,早期版本JDK1.0,继承Object类,实现java.io.Serializable, Comparable<String>, CharSequence三个接口,是一个final类。
String的不可变性:private final char value[];(1)长度:final修饰的数组长度不变,final修饰数组的地址也不变。(2)内容:private修饰的属 性为私有,不能在类的外部访问。
String独有的方法(StringBuffer和StringBuilder没有的):concat() compareTo() toUpperCase()
2. StringBuffer:
位于java.lang包,早期版本JDK1.0,继承AbstractStringBuilder类,实现java.io.Serializable, CharSequence接口,是一个final类,StringBuffer类的父类实现了Appendable接口。
StringBuffer存储的字符串是可变的,没有final修饰,底层可以进行数组扩容。它是线程同步,安全性比较高,执行效率相对比较低。
3. StringBuilder:
位于java.lang包,后期版本JDK1.5,继承AbstractStringBuilder类,实现java.io.Serializable, CharSequence接口,是一个final类,其父类实现了Appendable接口。
StringBuilder存储的字符串是可变的,没有final修饰,底层可以进行数组扩容。它是线程非同步,安全性比较低,执行效率相对比较高。
有一些方法String没有的:append() insert() delete() reverse() 。