String 和StringBuffer的区别

来源:百度知道 编辑:UC知道 时间:2024/05/20 05:16:05
越详细越好!最好就像教课一样
要有例子`要比喻`让不懂的人一听就明白`
给人讲的话能讲个30分钟~(可以结合baidu其他知道的答案)
总之!要说的头头是道!
都说的太短了...

STRING的长度是不可变的,STRINGBUFFER的长度是可变的。如果你对字符串中的内容经常进行操作,特别是内容要修改时,那么使用StringBuffer,如果最后需要String,那么使用StringBuffer的toString()方法
使用 StringBuffer 主要就是在性能上的考虑。 String 是一种非常常用的数据类型,但由于 String 是不可变对象,在进行 String 的相关操作的时候会产生许多临时的 String 对象。而 StringBuffer 在操作上是在一个缓冲中进行的,性能当然优越得多。不过,一般做为简单的字符串传递和其它操作,只不要改变字符串内容的操作,用 String 效率会高一些。

String类:
String 类的实例表示Unicode字符序列。String对象具有一个常量(不变的)的值。字符串值(3.10.5节)是对String类的实例的引用。
当结果不是一个编译时常量时(15.28节),字符串连接运算符+(15.18.1节)会隐士创建一个新的String对象。
以上节选自《Java编程规范》第三版。

String 类代表字符串。Java 程序中的所有字符串字面值(如 "abc" )都作为此类的实例实现。
字符串是常量;它们的值在创建之后不能更改。字符串缓冲区支持可变的字符串。因为 String 对象是不可变的,所以可以共享。例如:
String str = "abc";
等效于:
char data[] = {'a', 'b', 'c'};
String str = new String(data);
下面给出了一些如何使用字符串的更多示例:
System.out.println("abc");
String cde = "cde";
System.out.println("abc" + cde);