1,string对象的值是不可以改变的(string是引用类型,栈中储存地址,该地址指向堆中的具体数据。对其的修改只是重新在堆中创建了一个新的数据,然后将栈中地址改为修改后的数据地址,原来的数据没有发生改变。)string buffer则是直接修改数据。
#当知道所用数据需要进行频繁更改时,使用string buffer能够明显提高效率,并且耗占更少资源。
2,string覆盖了equals方法和HashCode方法,而string buffer没有,所以将string buffer对象存入Java集合类中时就会出现问题。
3,string是线程不安全的,但是效率相对较高;string buffer是线程安全的,效率相对较低。