11.1.2 StringBuffer类的应用
11.1.1节为读者演示了StringBuffer类的基本用法,StringBuffer类中的许多用法都与String相似,那么StringBuffer类到底在哪里使用较多呢?
在讲解String类时,曾有以下的代码:
- package org.lxh.demo11.stringbufferdemo;
- public class StringBufferDemo09 {
- public static void main(String[] args) {
- String str1 = "LiXingHua";
- for (int i = 0; i < 100; i++) {
- str1 += i; //
不断修改String的内存引用,性能低- }
- System.out.println(str1);
- }
- }
当时曾经提过,以上代码虽然最后字符串的结果改变了,但实际上是通过不断修改对象的引用来实现的,所以性能很差,也就是说要想解决此类问题就必须靠StringBuffer,因为StringBuffer的内容是可以修改的,代码修改如下。
范例:使用StringBuffer完成要求
- package org.lxh.demo11.stringbufferdemo;
- public class StringBufferDemo10 {
- public static void main(String[] args) {
- StringBuffer buf = new StringBuffer() ;
- buf.append("LiXingHua");
- for (int i = 0; i < 100; i++) {
- buf.append(i) ; // StringBuffer可以修改,性能高
- }
- System.out.println(buf);
- }
- }
以上程序实现的功能与本节中第一个程序是一样的,但是由于使用了StringBuffer,所以代码的性能有了很大的提高,也就是说对于频繁修改字符串内容的地方,最好使用StringBuffer类完成。