zoukankan      html  css  js  c++  java
  • 常见的代码优化

    1. 尽量重用对象,不要循环创建对象,如:for 字符串拼接

    2. 容器类初始化时指定长度
        new List<>(5); new Map<>(5); 防止运行过程中扩容问题

    3. ArrayList随机遍历快 / ListedList添加删除快

    4. 集合遍历尽量减少重复计算
        for(i = 0;j=aa.size();i<j;i++) 不用把aa.size()写进来

    5. 使用Entry遍历Map
        for(Map.Entry<String, String> entry : map.entrySet()){
            entry.getkey/getvalue 一次获取不用遍历
        }

    6. 大数组复制用System.arraycopy
        小数组就无所谓了

    7. 尽量使用基本类型 而不是 包装类型
        Interger i =100; 1 push100 、2 Integer.valueOf()
        low -128 high 默认127 超出范围不在缓存中会new Integer 内存和地址问题

    8. 不手动调用System.gc()

    9. 及时消除国企对象的引用,防止内存泄漏
        如:类似pop 获取对象后 置为null

    10. 尽量使用局部变量,减少变量作用域

    11. 尽量减小同步作用范围 synchronized方法 与 同步块 细化

    12. ThreadLocal缓存线程不安全的对象 SimpleDateFormat
        可放到ThreadLocal中就不用每次都去new
        ThreadLocal<SimpleDateFormat> dateFormatHolder = new ThreadLocal<SimpleDateFormat>(){
            initialValue() { new SimpleDateFormat("yyyy-MM");
        };
        直接 dateFormatHolder.get().format(date); 即可

    13. 尽量使用延迟加载
        如:单例的内部类 就属于延迟加载
        public class Singleton{
            private Singleton(){}
            private static clss SingletonHolder{
                private static Singleton instance = new Singleton();
            }
            public static Singleton getInstance(){
                return SingletonHolder.instance;
            }
        }

    14. 尽量减少使用反射,加缓存
        反射相当于一系列解释操作,通知jvm要做的事情,性能比直接的java代码要慢很多
        可以通过反射把对象放到内存缓存,使用的时候直接内存中取,而不要用到的时候再去反射获取 否则效率会底一些

    15. 尽量使用池。如:连接池,线程池,对象池、缓存。

    16. 及时释放资源,io流、socket、数据库链接
        比较消耗系统资源

    17. 慎用异常 不用抛异常来表示正常的业务逻辑。这个看具体业务不做重点
        异常比较重的对象 如果出现异常 栈纪录下来 比较耗时

    18. 日志输出注意使用不同级别

    19. 日志中参数拼接使用占位符
        log.info("hello:" + name); // 2个字符串拼接 不推荐
        log.info("hello:{}" , name);

    群交流(262200309)
  • 相关阅读:
    MySQL+Toad for Mysql安装,配置及导入中文数据解决乱码等问题
    Excel日期格式提取year
    arcgis中使用excel中x,y坐标创建点问题
    GIS中栅格数据的拼接
    R 中安装xlsx包缺少java环境解决方案
    R中统计量的中英文解释
    arcgis离海距离的计算
    EXCEL处理数据小技巧
    nginx部署成功却没有办法访问
    Linux安装yum install gcc-c++出错:Could not retrieve mirrorlist http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=os&infra=stock error was 14: curl#6
  • 原文地址:https://www.cnblogs.com/webster1/p/12598800.html
Copyright © 2011-2022 走看看