设为首页 - 加入收藏 ASP站长网(Aspzz.Cn)- 科技、建站、经验、云计算、5G、大数据,站长网!
热搜: 创业者 数据 手机
当前位置: 首页 > 运营中心 > 建站资源 > 优化 > 正文

Java性能优化:35个小细节,提升你的Java代码运行效率(5)

发布时间:2019-11-05 16:37 所属栏目:21 来源:程序猿久一
导读:所以以后遇到把一个基本数据类型转为String的时候,优先考虑使用toString方法。至于为什么,很简单: String.valueOf方法底层调用了Integer.toString方法,但是会在调用前做空判断 Integer.toString方法就不说了,

所以以后遇到把一个基本数据类型转为String的时候,优先考虑使用toString方法。至于为什么,很简单:

  1. String.valueOf方法底层调用了Integer.toString方法,但是会在调用前做空判断
  2. Integer.toString方法就不说了,直接调用了
  3. i + “”底层使用了StringBuilder实现,先用append方法拼接,再用toString方法获取字符串

三者对比下来,明显是2最快、1次之、3最慢

34、使用最有效率的方式去遍历Map

遍历Map的方式有很多,通常场景下我们需要的是遍历Map中的Key和Value,那么推荐使用的、效率最高的方式是:

  1. public static void main(String[] args) 
  2. 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){ 
  3. Map.Entry<String, String> entry = iter.next; 
  4. System.out.println(entry.getKey + "\t" + entry.getValue); 

如果你只是想遍历一下这个Map的key值,那用”Set keySet = hm.keySet;”会比较合适一些

35、对资源的close建议分开操作

意思是,比如我有这么一段代码:

  1. try{ 
  2. XXX.close; 
  3. YYY.close; 
  4. }catch (Exception e) 
  5. {...} 

建议修改为:

  1. try{ XXX.close; }catch (Exception e) { ... }try{ YYY.close; }catch (Exception e) { ... } 

虽然有些麻烦,却能避免资源泄露。我想,如果没有修改过的代码,万一XXX.close抛异常了,那么就进入了cath块中了,YYY.close不会执行,YYY这块资源就不会回收了,一直占用着,这样的代码一多,是可能引起资源句柄泄露的。而改为上面的写法之后,就保证了无论如何XXX和YYY都会被close掉。

(编辑:ASP站长网)

网友评论
推荐文章
    热点阅读