「 代码性能优化 」java高级程序员必知必会的55个代码性能优化技巧

110 阅读4分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 1 天,点击查看活动详情


《菜鸟程序员成长计划》之代码性能优化

  1. 「 代码性能优化 」java高级程序员必知必会的55个代码性能优化技巧
  2. 「 代码性能优化 」作为一名Java程序员,你真的会写for循环吗?
  3. .......

篇幅所限,更多、更体系化的内容请持续关注 《菜鸟程序员成长计划》之代码性能优化 专栏,您的 关注、点赞、收藏 都将是小编持续创作的动力!


1、尽量在合适的场合使用单例

2、尽量避免随意使用静态变量

3、尽量避免过多过常地创建 Java 对象

4、尽量使用 final 修饰符

5、尽量使用局部变量

6、尽量处理好包装类型和基本类型两者的使用场所

7、慎用 synchronized,尽量减小 synchronize 的方法

9、尽量不要使用 finalize 方法

10、尽量使用基本数据类型代替对象

11、多线程在未发生线程安全前提下应尽量使用 HashMap、ArrayList,不建议使用HashTable、Vector,因其使用了同步机制,降低了性能

12、尽量合理的创建 HashMap

13、尽量减少对变量的重复计算

14、尽量避免不必要的对象创建

15、尽量在 finally 块中释放资源

16、尽量使用移位来代替 'a/b' 的操作

17、尽量使用移位来代替 'a*b' 的操作

18、尽量确定 StringBuffer 的容量

19、尽量早释放无用对象的引用

20、尽量避免使用二维数组

21、尽量避免使用 split

22、随机查询尽量使用 ArrayList,添加删除的操作 LinkedList 优于 ArrayList

23、尽量使用 System.arraycopy () 代替通过来循环复制数组

24、尽量缓存经常使用的对象

25、尽量避免非常大的内存分配

26、慎用异常

27、尽量重用对象

28、不要重复初始化变量

29、在 java+Oracle的 应用系统开发中,java 中内嵌的 SQL 语言应尽量使用大写形式,以减少 Oracle 解析器的解析负担。

30、在 java 编程过程中,进行数据库连接,I/O 流操作,在使用完毕后,及时关闭以释放资源。因为对这些大对象的操作会造成系统大的开销。

31、保证过期的对象的及时回收具有重要意义

32、在使用同步机制时,应尽量使用方法同步代替代码块同步。

33、不要在循环中使用 Try/Catch 语句,应把 Try/Catch 放在循环外层

34、通过 StringBuffer 的构造函数来设定它的初始化容量,可以明显提升性能

35、合理使用 java.util.Vector

38、不用 new关键字创建对象的实例

39、不要将数组声明为:public static final

40、HaspMap 的遍历利用散列值取出相应的 Entry 做比较得到结果,取得 entry 的值之后直接取 key 和 value

41、array 数组效率高,但容量固定,无法动态改变,ArrayList 容量可以动态增长,但牺牲了效率

42、单线程应尽量使用 HashMap, ArrayList

43、建议使用 StringBuffer

44、尽量使用基本数据类型代替对象。

45、使用具体类比使用接口效率高,但结构弹性降低了,但现代IDE都可以解决这个问题。

46、考虑使用静态方法

47、应尽可能避免使用内在的 GET,SET 方法。

48、避免枚举,浮点数的使用。

49、避免在循环条件中使用复杂表达式

50、为 'Vectors' 和 'Hashtables' 定义初始大小

51、在 finally 块中关闭 Stream

52、使用 'System.arraycopy ()' 代替通过来循环复制数组

53、让访问实例内变量的 getter/setter 方法变成 ”final”

54、对于常量字符串,用 'String' 代替 'StringBuffer'

55、在字符串相加的时候,如果该字符串只有一个字符使用 ' ' 代替 " "


《菜鸟程序员成长计划》之代码性能优化 专栏,将对上述每一条优化细节展开讨论,请持续关注!

参考:

必会的 55 个 Java 性能优化细节!一网打尽!


开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 1 天,点击查看活动详情