zoukankan      html  css  js  c++  java
  • EffectiveJava(5)避免创建不必要的对象

    避免创建不必要的对象

    1.通过延迟初始化对象提高性能 调用功能方法时调用静态工厂方法,而不是调用类时使用
    2.适配器:把功能委托给一个后备对象,从而为后备对象提供一个接口的对象
    3.自动装箱:优先使用基本类型而不是装箱的基本类型,要当心无意识的自动装箱
    自动装箱类型每次使用的时候都会创建一个对象的实例,造成大量资源浪费

    ``long abSDate = System.currentTimeMillis();
    Long sumL = 0L;//每次调用参数sumL时都需要创建一个Long实例
    for (int i = 0; i < Integer.MAX_VALUE; i++) {
    //大约创建了2的31次方个实例
        sumL += i;
    }
        long abEDate = System.currentTimeMillis();
        System.out.print(sumL+",");
        System.out.println("使用Long自动装箱=4428?" + (abEDate-abSDate));
        long sDate = System.currentTimeMillis();
    long suml = 0L;
        for (int i = 0; i < Integer.MAX_VALUE; i++) {
        suml += i;
        }
        long eDate = System.currentTimeMillis();
        System.out.print(suml+",");
        System.out.println("使用long基本类型计算耗时= 918?" + (eDate - sDate ));

    已经在上面标注了运行时间,可以看到不适用自动装箱同样的代码运行速度要快将近五倍

    4.如果对象的构造器只做少量的显式工作,可以通过创建附加的对象,提升程序的清晰性,简洁性和功能性

  • 相关阅读:
    python笔记之re模块学习
    python笔记之面向对象
    C# 静态类和非静态类(实例类)
    占位符的使用
    数据类型和数据类型转换
    win7 安装 memcached
    php 汉字转换成拼音
    apache window环境下本地配置虚拟主机
    在浏览器输入一个网址到得到页面的过程
    浅谈线程池ThreadPoolExecutor核心参数
  • 原文地址:https://www.cnblogs.com/qwop/p/6637308.html
Copyright © 2011-2022 走看看