java使用java.lang包中的String类来创建一个字符串变量,因此字符串变量时类类型变量,是一个对象。string类创建的字符串对象时不可修改的,也就是说,string字符串不能修改、删除或替换字符串中的某个字符,即String对象一旦创建,实体是不可以再发生变化的。
如:String s=new String("I love this game");
StringBuffer类能创建可修改的字符串序列,即该类的对象的实体的内存空间可以自动的改变大小,便于存放一个可变的字符串。
如:StringBuffer s=new StirngBuffer("I love this game");
s.append("OK");
String实现了equal()方法和hashcode()方法,而StringBuffer没有实现。
StringBuilder一个可变的字符序列。此类提供一个与 StringBuffer 兼容的 API,但不保证同步。该类被设计用作 StringBuffer 的一个简易替换,用在字符串缓冲区被单个线程使用的时候(这种情况很普遍)。
StringBuilder不是线程安全的,而StringBuffer是线程安全的,但其在单线程中的性能比StringBuffer高。