初涉java的童鞋一般不会涉及什么内存消耗的问题,因为经手的项目不够大,但是有些知识我觉得还是在基础的时候需要掌握的,不好的习惯真的会在将来造成很大的损失。
关于这个主题直接上代码对比,效果就出来了。。。
long startTime=System.currentTimeMillis();
String str1 = "";
for(int i = 0; i < 10000; i++) {
str1 += i;
}
long endTime=System.currentTimeMillis();
System.out.println("String程序运行时间: "+(endTime-startTime)+"ms");
startTime=System.currentTimeMillis();
StringBuilder str2 = new StringBuilder();
for(int i = 0; i < 10000; i++) {
str2.append(i);
}
endTime=System.currentTimeMillis();
System.out.println("StringBuilder程序运行时间: "+(endTime-startTime)+"ms");
startTime=System.currentTimeMillis();
StringBuffer str3 = new StringBuffer();
for(int i = 0; i < 10000; i++) {
str3.append(i);
}
endTime=System.currentTimeMillis();
关于这个主题直接上代码对比,效果就出来了。。。
long startTime=System.currentTimeMillis();
String str1 = "";
for(int i = 0; i < 10000; i++) {
str1 += i;
}
long endTime=System.currentTimeMillis();
System.out.println("String程序运行时间: "+(endTime-startTime)+"ms");
startTime=System.currentTimeMillis();
StringBuilder str2 = new StringBuilder();
for(int i = 0; i < 10000; i++) {
str2.append(i);
}
endTime=System.currentTimeMillis();
System.out.println("StringBuilder程序运行时间: "+(endTime-startTime)+"ms");
startTime=System.currentTimeMillis();
StringBuffer str3 = new StringBuffer();
for(int i = 0; i < 10000; i++) {
str3.append(i);
}
endTime=System.currentTimeMillis();
System.out.println("StringBuffer程序运行时间: "+(endTime-startTime)+"ms");
运行结果:
String程序运行时间: 278ms
StringBuilder程序运行时间: 2ms
StringBuffer程序运行时间: 1ms