美文网首页
java程序的性能优化(三)

java程序的性能优化(三)

作者: 轻舞凋零 | 来源:发表于2022-07-02 15:51 被阅读0次

1 字符串优化处理

  • string的不可变性
  • substring 可能引发内存泄漏
  • 字符串分割和查找
  • stringBuffer和StringBuilder
  • 优化字符串存储

2 核心数据结构

  • List接口
    • ArrayList,LinkedList,Vector
  • Map接口
    • HashMap,TreeMap,LinkedHashMap,Hashtable
  • Set接口
    • HashSet,LinkedHashSet,TreeSet
  • 优化集合访问代码
  • RandomAccess接口

3 使用NIO提升性能

  • NIO中的Buffer类族和Channel
    • XBuffer
    • 分配内存,读取,flip()
  • Buffer的原理
    • 字节数组,position,capacity,limit
  • Buffer的相关操作
    • clear,flip,rewind
  • MappedByteBuffer从nio直接内存映射
  • 直接访问内存 DirectBuffer:分配内存,读取flip,创建和销毁比较耗时

4 引用类型

  • 强引用:直接访问目标,内存泄漏
  • 软引用:当堆内存率接近阀值时,才会回收软引用对象
  • 弱引用:一旦垃圾回收就会回收
  • 虚引用:最弱,跟踪垃圾回收的过程
  • WeakHashMap类:弱引用,缓存表解决方案

5 性能测试工具JMH

  • JMH的使用
  • 指定测量模式
  • 对象作用域
  • 代码消除

6 有助于改善性能的技巧

  • 使用局部变量
  • 位运算替换除法
  • 替换switch
  • 一维数组代替二维数组
  • 提取表达式
  • 展开循环
  • 布尔运算代替为运算
  • 使用arrayCopy
  • 使用buffer操作IO
  • 使用clone代替new
  • 慎用java函数式编程

相关文章

网友评论

      本文标题:java程序的性能优化(三)

      本文链接:https://www.haomeiwen.com/subject/kdkpvrtx.html