所以以后遇到把一个基本数据类型转为String的时候,优先考虑使用toString方法。至于为什么,很简单:
- String.valueOf方法底层调用了Integer.toString方法,但是会在调用前做空判断
- Integer.toString方法就不说了,直接调用了
- i + “”底层使用了StringBuilder实现,先用append方法拼接,再用toString方法获取字符串
三者对比下来,明显是2最快、1次之、3最慢
34、使用最有效率的方式去遍历Map
遍历Map的方式有很多,通常场景下我们需要的是遍历Map中的Key和Value,那么推荐使用的、效率最高的方式是:
- public static void main(String[] args)
- {
- HashMap<String, String> hm = new HashMap<String, String>;hm.put("111", "222");Set<Map.Entry<String,String>> entrySet = hm.entrySet;Iterator<Map.Entry<String, String>> iter = entrySet.iterator; while(iter.hasNext){
- Map.Entry<String, String> entry = iter.next;
- System.out.println(entry.getKey + "t" + entry.getValue);
- }
- }
如果你只是想遍历一下这个Map的key值,那用”Set keySet = hm.keySet;”会比较合适一些
35、对资源的close建议分开操作
意思是,比如我有这么一段代码:
- try{
- XXX.close;
- YYY.close;
- }catch (Exception e)
- {...}
建议修改为:
- try{ XXX.close; }catch (Exception e) { ... }try{ YYY.close; }catch (Exception e) { ... }
虽然有些麻烦,却能避免资源泄露。我想,如果没有修改过的代码,万一XXX.close抛异常了,那么就进入了cath块中了,YYY.close不会执行,YYY这块资源就不会回收了,一直占用着,这样的代码一多,是可能引起资源句柄泄露的。而改为上面的写法之后,就保证了无论如何XXX和YYY都会被close掉。
(编辑:我爱制作网_潮州站长网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|