加入收藏 | 设为首页 | 会员中心 | 我要投稿 辽源站长网 (https://www.0437zz.com/)- 云专线、云连接、智能数据、边缘计算、数据安全!
当前位置: 首页 > 运营中心 > 建站资源 > 优化 > 正文

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

发布时间:2019-11-06 01:06:16 所属栏目:优化 来源:程序猿久一
导读:前言 代码优化 ,一个很重要的课题。可能有些人觉得没用,一些细小的地方有什么好修改的,改与不改对于代码的运行效率有什么影响呢?这个问题我是这么考虑的,就像大海里面的鲸鱼一样,它吃一条小虾米有用吗?没用,但是,吃的小虾米一多之后,鲸鱼就被喂

所以以后遇到把一个基本数据类型转为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掉。

(编辑:辽源站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

推荐文章
    热点阅读