String:
不可变字符串,是final修饰的java类对象,一旦修改就会创建新的对象,原来的对象引用会指向新创建的对象
string字符串存放在常量池中,当要创建的字符串在常量池中已经存在,就会引用这个字符串对象,而不会再创建
StrjngBuffer:
可变字符串对象,可以在原地修改内容,它的方法是synchronized修饰的,所以是线程安全的,多个线程同时访问是能保持数据的一致性
StrkngBuilder:
可变字符串对象,可在原地修改,但不是线程安全的,不可多个线程同时访问,单线程情况下效率比StringBuffer更高
不需要频繁修改字符串就用string
频繁修改且多线程访问用StringBuffer
频繁修改且单线程访问用StringBuilder