读书人

简单的几行代码大家说说优化思路,该

发布时间: 2012-05-13 16:39:43 作者: rapoo

简单的几行代码,大家说说优化思路

Java code
String tmpParam = "";for(String key : map.keySet()){    tmpParam += ("&" + key + "=" + URLEncoder.encode(map.get(key)));}tmpParam = tmpParam.substring(1);//去掉最前端的&            String strUrl = "http://" + host + ":8080/smsControl/"                    + action                    + ".action?"                    + tmpParam;


这是我写的代码,目的是拼一个URL出来,参数放在map里了

高手们都说说这几行代码的优化算法吧,大家讨论一下

[解决办法]
String tmpParam = ""; 必须改为StringBuilder....
相当的影响性能。。

如果map中数据太多,可以考虑entrySet()

Java code
public class Test02 {    public static void main(String[] args) {        final int count = 100000;        long time01 = System.currentTimeMillis();        String s = "";        for (int i = 0; i < count; i++) {            s += 'a';        }        long time02 = System.currentTimeMillis();        System.out.println("String:" + (time02 - time01) + "ms");                        long time03 = System.currentTimeMillis();        StringBuilder sb = new StringBuilder();        for (int i = 0; i < count; i++) {            sb.append('a');        }        long time04 = System.currentTimeMillis();        System.out.println("StringBuilder:" + (time04 - time03) + "ms");    }}
[解决办法]
探讨

JDK1.5以上已经优化String连加操作为StringBuffer,此处不需要优化。

读书人网 >J2SE开发

热点推荐