`

一套笔试小题

 
阅读更多

有这样一道笔试题目,请问str1,str2,str3,str4的执行效率如何排序的?

String str1="1"+"2"+"3"+"4"+"5"+"6"+"7"+"8"+"9"+"10";

 

 

String str2="";
  for(int i=1;i<=10;i++){
   str2+=i;
  }

 

 StringBuffer str3 = new StringBuffer();
  for(int i = 1; i <=10 ;i++){
   str3 = str3.append(i);
  }

 

StringBuilder str4 = new StringBuilder();
  for(int i = 1; i <=10 ;i++){
   str4 = str4.append(i);
  }

 

正确答案为str1--str4---str3---str2

 

str1最快显然的,因为整个拼接完全在栈中进行;而对于str3,str4而言,StringBuffer是线程安全的,其它与StringBuilder相同,故其效率比StringBuilder慢。最后的就是str2了,str2的计算过程中需要不断的进行+=操作,这是比较费时的,故最慢。

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics