美文网首页
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