• Java代码中可以优化性能的小细节


    避免对boolean类型的判定
    反例:

    1
    2
    if("a".equles("a")==true)`{
    }

    正例:

    1
    2
    if(Objects.equles("a","a"))`{
    }

    **多用条件判断符 **

    反例:

    1
    2
    3
    4
    5
    6
    7
    if(a<0)`{
    return 0;
    }else{
    return 1;
    }
    ```
    正例:

    a<0?0:1;

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18

    **避免使用instanceof、避免把子类向父类转型**
    掌握好多态即可



    **建议多使用局部变量**
    局部变量保存在栈中,占用的内存随着方法的执行完毕而被释放

    **多使用位运算代替算术运算**
    就是可读性差点

    **一维数组和二维数组的恩怨情仇**
    保存同样的数据使用一维数组和二维数组的区别是前者以时间换空间后者是以空间换时间

    **不要经常使用取反操作符**

    反例:

    if(!a<0)`{
    return 0;
    }else{
    return 1;
    }

    1
    正例:

    if(a>=0)`{
    return 0;
    }else{
    return 1;
    }

    1
    2
    3
    4
    5
    6
    7
    8
    9

    **快速操作一个超大List的连续性数据**

    使用集合的`List<E> subList(int fromIndex,int toIndex)`方法可以返回一个超大List的一段连续性数据,此时对这个subList的所有操作比如`clear()`等操作都会影响到原List

    **当一个方法的返回值是List的时候请返回一个size为0list而不是null从而避免空指针异常**

    **单个字符串连接时使用单引号代替双引号**
    反例:

    “abc”+“d”;

    1
    正例:

    “abc”+‘d’;

    1
    2
    3
    4
    5
    6
    **大量字符串拼接时使用StringBuffer代替+**

    **切割字符串的时候使用StringTokenizer代替split**

    **提前计算出需要循环的次数**
    反例:

    for(int i=0i<a.size();;i++){
    }

    1
    正例:

    for(int i=0,n=a.size();i<n;i++){
    }

    1
    2
    3

    **减少不必要的需要循环的次数**
    反例:

    int index=-1;
    for(int i=0,n=a.size();i<n;i++){
    if(a.get(i)==3){
    index=i;
    }
    }

    1
    正例:

    int index=-1;
    for(int i=0,n=a.size();i<n;i++){
    if(a.get(i)==3){
    index=i;
    break;
    }
    }

    **不要在循环中改变数组/List的大小**
    
    **使用`System.arrayCopy`进行复制数组**
    
    **使用Buffer进行IO操作**
    
    **释放资源的代码要放在finally代码块中**
    
    **多用java.util.Obects工具类**
    
    
    
    
    <h4
    
  • 相关阅读:
    跃迁方法论 Continuous practice
    EPI online zoom session 面试算法基础知识直播分享
    台州 OJ 2648 小希的迷宫
    洛谷 P1074 靶形数独
    洛谷 P1433 DP 状态压缩
    台州 OJ FatMouse and Cheese 深搜 记忆化搜索
    台州 OJ 2676 Tree of Tree 树状 DP
    台州 OJ 2537 Charlie's Change 多重背包 二进制优化 路径记录
    台州 OJ 2378 Tug of War
    台州 OJ 2850 Key Task BFS
  • 原文地址:https://www.cnblogs.com/zhixiang-org-cn/p/11337759.html
Copyright © 2020-2023  润新知