String 和 StringBuilder,StringBuffer的区别

不同点
String 不可变的长度,每一次执行“+”都会新生成一个新对象,所以频繁改变字符串的情况中不用String,以节省内存
StringBuffer:可变字符串(), 效率慢,因为对方法进行加锁,所以是线程安全的,2 继承了AbstractStringBuilder 
StringBuilder:可变字符序列、效率高 并没有对方法进行加同步锁,所以是非线程安全的
相同点

StringBuffer和StringBuilder都继承了StringBuilder 所以里面的方法是一至,其中对StringBuffer里面的方法进行加锁以外,其他都一样

StringBuffer和StringBuilde 默认长度都是16 ,每次新增内容时,此时会自动获取内容长度+16

你可能感兴趣的:(java)