Java程序性能优化Tips

编程技术  /  houtizong 发布于 3年前   100

1,避免在循环条件中使用复杂表达式

在不做编译优化的情况下,在循环中,循环条件会被反复计算,如果不使用复杂表达式,而使循环条件值不变的话,程序将会运行的更快。
如在条件循环中,使用 for (int i = 0; i < v.size(); i++) ,可以考虑使用 for (int i = 0 , j = v.size() ; i < j ; i++)。能够减少函数调用,且v.size()还是一个同步的方法。
对于不会再多线程同时使用的容器,可以使用 ArrayList等代替Vector

2,为容器如List或者Map指定初始大小。

在能够估算容器大小的情况下,建议在初始化容器时指定大小,以避免频繁扩容导致的性能损失
其他容器,如StringBuffer, StringBuilder也可以参考

3,在finally中关闭资源。

在finally中关闭资源,如stream,connection等,能够避免资源泄露。
另外一个易疏忽的场景是,在使用对象池时,如果borrow了一个对象,最好在finally中归还,以免因使用中的异常导致无法归还。
jdk7之后出现try-with-resources,建议使用

4,使用’system.arraycopy ()’代替通过来循环复制数组

system.array会调用本地方法进行复制,比在java里复制快得多。熟悉jdk自带的一些方法,了解apache common项目中的类库,有益于提升工作效率和程序性能。

5,在可以使用final的地方使用final,如不可变成员变量,访问实例内变量的getter/setter方法,不会被改写的方法,甚至不需要继承的类。

编译器会将final的方法内联

6,如果只是查找单个字符的话,用charat()代替startswith()

前者直接下标读取数据,性能高于后者。

7,善用移位进行乘除运算

如果恰好是2的幂的变化,使用左移或者右移性能更好

8,避免在循环中进行耗资源的操作,如try-catch或者同步

9,尽可能的使用栈变量

如果可能,请使用局部变量作为你经常访问的变量

 

转载:http://www.zhouyoudao.com/javatips/

请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!

留言需要登陆哦

技术博客集 - 网站简介:
前后端技术:
后端基于Hyperf2.1框架开发,前端使用Bootstrap可视化布局系统生成

网站主要作用:
1.编程技术分享及讨论交流,内置聊天系统;
2.测试交流框架问题,比如:Hyperf、Laravel、TP、beego;
3.本站数据是基于大数据采集等爬虫技术为基础助力分享知识,如有侵权请发邮件到站长邮箱,站长会尽快处理;
4.站长邮箱:[email protected];

      订阅博客周刊 去订阅

文章归档

文章标签

友情链接

Auther ·HouTiZong
侯体宗的博客
© 2020 zongscan.com
版权所有ICP证 : 粤ICP备20027696号
PHP交流群 也可以扫右边的二维码
侯体宗的博客