Java性能优化笔记

  1. 尽量使用单例

  2. 合理使用静态变量,常用才使用,减少使用

  3. 多使用final,如getter/setter

  4. 尽量不要在循环中创建对象(使用基本数据类型或者数组来代替),不要过多创建对象,不要在循环中使用try/catch

  5. 尽量使用局部变量,局部变量存在栈中,比存在堆中的变量实例等速度都要快(但是规范要求尽量不要有局部变量,适当就行)

  6. 基本类型和包装类型一样,基本数据类型在栈中,包装类型在堆中,合理使用吧,能用基本类型就用基本类型,不行就用包装类型

  7. synchronized 尽量不用,用的话范围尽量小

  8. 尽量不要使用finalize

  9. 未发生线程安全前提下尽量使用HashMap、ArrayList、StringBuilder,减少使用HashTable、Vector、StringBuffer等

  10. 合理使用HashMap,给出最佳大小,尽量避免扩容,其他类似(如StringBuffer)

  11. 尽量减少重复计算,如list.size在循环中可以提前算好,然后再在循环中使用

    扫描二维码关注公众号,回复: 9692691 查看本文章
  12. 尽量减少不必要的对象创建

  13. 资源要及时关闭

  14. 尽量使用位运算来代替逻辑运算,在条件判断中尽量用boolean

  15. 尽早释放无用对象引用

  16. 用一维数组代替二维数组

  17. 尽量避免使用split,如果要用,可以使用apache的StringUtils.split(string, char),频繁的split可以缓存结果

  18. 合理使用ArrayList或LinkedList

  19. 尽量使用System.arraycopy()来代替复制数组

  20. 尽量缓存经常用的对象,重用对象

  21. 尽量避免非常大的内存分配

  22. 尽量减少异常使用

  23. 创建对象可以合理使用clone()

发布了169 篇原创文章 · 获赞 1 · 访问量 3613

猜你喜欢

转载自blog.csdn.net/weixin_43871678/article/details/104195465
今日推荐