java中的一些编程技巧

  • 01. 优先使用局部变量
  • 02. 位运算代替算数运算
  • 03. 数组代替switch
  • 04. 一维数组代替二维数组
  • 05. 提取表达式
  • 06. 展开循环
  • 07. 布尔运算代替位运算
  • 08. 使用arratCopy进行数组复制


01. 优先使用局部变量

  • 调用方法时传递的参数以及在调用中创建的临时变量都保存在栈(stack)中,速度较快。其他变量,如静态变量、实例变量等,都在堆(heap)中创建,速度较慢
  • LocalvarBench

02. 位运算代替算数运算

  • 位运算是最为高效的。因此,可以尝试使用位运算代替部分算数运算,来提高系统的运行速度。最典型的就是对于整数的乘除运算优化。
  • BitMathBench

java GUC编程 java编程技巧_二维数组

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需要消耗巨大的系统资源,这种处理方式可以节省这些处理资源。
  • java GUC编程 java编程技巧_二维数组_02


08. 使用arratCopy进行数组复制

java GUC编程 java编程技巧_一维数组_03