关于Stringbuffer和StringBuilder

YYpawn 2018-05-08 04:51:23
public void sds(){
StringBuffer buffer = new StringBuffer();
long l1 = System.currentTimeMillis();
for (int i = 0;i<100000;i++){
buffer.append(i).append("-");
if (i==99999){
buffer.append(i);
}
}
System.out.println(buffer);
long l2 = System.currentTimeMillis();
System.out.println(l2 - l1);
System.out.println("~~~~~~~~~~~~~~~~~~~~~~~社会人~~~~~~~~~~~~~~~~~~~~~~~");
StringBuilder builder = new StringBuilder();
long l3 = System.currentTimeMillis();
for (int j = 0;j<100000;j++){
builder.append(j).append("-");
if (j==99999){
builder.append(j);
}
}
System.out.println(builder);
long l4 = System.currentTimeMillis();
System.out.println(l4 - l3);
System.out.println(buffer.length() == builder.length());
}

打印出来的结果为什么不一样?
...全文
652 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
YYpawn 2018-05-08
  • 打赏
  • 举报
回复
下面是全部打印出来了,上面结果只打印了一部分
天行归来 2018-05-08
  • 打赏
  • 举报
回复
结论应该是一样,不一样原因是控制台输出有限,内容覆盖了。你可以输出到日志就比较容易对比,或者10万次变成1万次。
YYpawn 2018-05-08
  • 打赏
  • 举报
回复

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧