- String是创建值不可改变的对象
String s="abc";
s="ad"
//其实内存创建了两个对象"abc","ad",然后将引用指向改变
- StringBuilder则是创建值可以改变的对象
StringBuilder builder=new StringBuilder("abc").append("ad");
//StringBuilder都是在对同一个对象基础上进行修改
- 以上两者比较是StringBuilder比较快,而且节省内存。当经常需要对String 修改时推荐Stringbuilder,作常量时可以用String.
- StringBuffer与StringBuilder相比则是线程上的差异,StringBuilder一般用于单线程中对于数据的读取,是线程不安全的;一般用于单线程。StringBuffer则是用于多线程中需要经常改变的值,保证线程安全。平时不涉及到多线程的话尽量使用StringBuilder,比StringBuffer快。