String的"+"与StringBuffer效率问题
2016-04-27 13:57
337 查看
案例一
1.String s = "a" + "b" + "c";
2.
String s = ""; s += "a"; s +="b"; s +="c";
3.
StringBuilder result = new StringBuilder(); result.append("a").append("b").append("c"); String s = result.toString();
运行效率:2>3>1
分析:
1.因为直接+,所以内存中每次需要new StringBuilder()对象,每次需要append()两次生成新的字符串,然后调用toString方法复制给s。所以下来总共,3次创建StringBuilder,6次append,3次toString
2.编译器直接对”+”优化,直接赋值
3.总共1次创建StringBuilder,3次append,1次toString
案例2
1)String s = ""; s = s + "a" + "b";
2)
String s = ""; s += "a" + "b";
运行效率 2) > 1)
1)运行时创建1个StringBuilder对象,3次append(s,a,b各一次),一次toString调用
2)运行时,编译器发现右侧”+“,直接优化成 ab,然后与左侧相加,所以 1次StringBuilder对象,2次append,1次toString
相关文章推荐
- d3.js——树状图的绘制
- LESS CSS 框架简介
- js 将800秒转换为分钟秒钟显示
- 基于Cloudera Manager 5和CDH5(版本5.3.3)的Hadoop集群安装
- 前端工程师知识结构图及书籍推荐
- 文章标题
- 基于Bootstrap的jQuery form表单验证插件
- 12种不宜使用的Javascript语法
- HTML5应用之文件拖拽上传
- 文章标题
- PHP和javascript判断访客终端是电脑还是手机
- 289. Game of Life
- perl 处理json 数组格式
- 执行mysqld_safe报错:mysqld does not exist or is not executable
- perl 处理json 数组格式
- perl 处理json 数组格式
- 原生js--事件类型
- 解读(一):从manifest开始
- js Date 函数方法及日期计算
- js原型继承机制实例详解