java中的一些编程技巧
01. 优先使用局部变量
- 调用方法时传递的参数以及在调用中创建的临时变量都保存在栈(stack)中,速度较快。其他变量,如静态变量、实例变量等,都在堆(heap)中创建,速度较慢
- LocalvarBench
02. 位运算代替算数运算
- 位运算是最为高效的。因此,可以尝试使用位运算代替部分算数运算,来提高系统的运行速度。最典型的就是对于整数的乘除运算优化。
- BitMathBench
03. 数组代替switch
- switch并无性能可言
- 数组替换switch可以对性能有一定的优化作用
- SwitchBench
04. 一维数组代替二维数组
- 一维数组和二维数组的访问速度是不一样的。一维数组的访问速度要优于二维数组。因此,在性能敏感的系统中要使用二维数组的,可以尝试通过可靠的算法,将二维数组转为一维数组再进行处理,以提高系统的响应速度。
- 在循环前预先取得数组长度,避免循环内每次都要读取数组长度
- ArrayBench
05. 提取表达式
公共代码块提取出来,只计算一次,可以提高系统性能
06. 展开循环
- 在极端情况下使用的优化手段,因为展开循环很可能会影响代码的可读性和可维护性,而这两者对软件系统来说也是极为重要的。但是当性能问题成为系统的主要矛盾时,展开循环绝对是一种值得尝试的优化技术
- ExtractLoop
07. 布尔运算代替位运算
- 在条件判断时,java会对布尔运算做相当充分的优化。假设有表达式a,b,c进行布尔运算"a&&b&&c",根据逻辑与的特点,只要在逻辑表达式中有一项返回false,整个表达式就返回false,因此,当表示a为false时,该表达式会立即返回false,而不会再去计算表达式b和c。若此时表达式b,c需要消耗巨大的系统资源,这种处理方式可以节省这些处理资源。