String与string buffer 的区别?

来源:百度知道 编辑:UC知道 时间:2024/07/05 18:22:17
如何向srtingbrffer里加数据

通过查看String的所有成员方法你可以发现对于String的任何操作都是返回的一个新的String实例,也就是说对于String的操作都是分配了新的内存空间去得到的。

但对于StringBuffer你对它的操作如果可以在你设置的初始长度中解决,系统会在当前的StringBuffer中对应的内存空间执行你要的操作,而返回的StringBuffer仍然是前一个实例,而如果对StringBuffer的操作使得StringBuffer必须扩展它的缓冲区长度,则系统将会给你开辟一个新的StringBuffer实例

用法上StringBuffer能实现的String类几乎都可以实现。但是StringBuffer的效率比String高,其实是大量字符串相连的时候。比如同样是增加数据:StringBuffer.append(String str)方法不会生成新对象,但是String str += "xxxx"虽然结果都一样,但后者会生成新对象,影响速度。(JAVA当中)。