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,尽可能的使用栈变量
如果可能,请使用局部变量作为你经常访问的变量
请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!
技术博客集 - 网站简介:
前后端技术:
后端基于Hyperf2.1框架开发,前端使用Bootstrap可视化布局系统生成
网站主要作用:
1.编程技术分享及讨论交流,内置聊天系统;
2.测试交流框架问题,比如:Hyperf、Laravel、TP、beego;
3.本站数据是基于大数据采集等爬虫技术为基础助力分享知识,如有侵权请发邮件到站长邮箱,站长会尽快处理;
4.站长邮箱:[email protected];
文章归档
文章标签
友情链接