知识点:
java.lang.String类
字符串是常量 ; 它们的值在创建之后不能更改。
String实现字符串加法:就会在内存中创建很多字符串占用内存,
占用内存越多,程序的效率就越低。
java.lang .StringBuilder类:
字符串缓冲区,可以提高字符串的效率,支持可变的字符串.
StringBuilder实现字符串加法,始终是一个数组,占用内存少, 所以效率高。
用到的知识:
System.currentTimeMills() / / 获取毫秒值.
public StringBuilder append(…): 添加任意类型的字符串
案 例 :
//请使用代码实现
// 分别使用String的+=和StringBuilder的append方法对字符串做100000次拼接,
// 计算String拼接100000次花费时间与StringBuilder拼接100000次所花费时间并打印。
public class Test09_currentTimeMillis {
public static void main(String[] args) {
// System类下的 currentTimeMillis方法
long l = System.currentTimeMillis(); //开始的毫秒值
String s = "ab"; // String的+= 对字符串做100000次拼接,
for (int i = 0; i < 100000; i++) {
s += "c" ;
}
long l1 = System.currentTimeMillis();//结束时的毫秒值
long s1 = l1 - l ; // 相减的时间就是所耗费的时间.
System.out.println("String所耗费的时间是:"+s1+"毫秒");
// 创建一个StringBuilder对象
long time = System.currentTimeMillis();
StringBuilder sb = new StringBuilder();
for (int i = 0; i < 100000; i++) {
sb.append("abc");
}
long time1 = System.currentTimeMillis();
System.out.println("StringBuilder类所耗费的时间是:"+(time1-time)+"毫秒");
}
}
运行结果如下:
根据运行结果显示,很明显StringBuilder效率更高。
知识点扩充:
链式编程:
builder.append(“hello”).append(“jian”).append(100).append(true);
System.out.println(builder);