zoukankan      html  css  js  c++  java
  • 享元模式

    享元模式:可以提高系统性能的设计模式之一,它的核心思想如果系统中存在多个相同的对象,那么只需要共享一份对象的copy,而没必为每次使用都创建新的对象,一般会与工厂类一同使用,由于创建对象的次数减少对于内存的需求也就较低,对于GC的压力也也有所减少,简单的说,即共享同一个对象

    public class Test {
        public static void main(String[] args) {
            Integer i = 2;
            Integer j = 2;
            System.out.println(i==j); //true
            Integer m = 200;
            Integer n = 200;
            System.out.println(m==n); //false
        }
    }

    对于为啥会出现这种情况,可以查看Integer类中的valueOf方法,实际上Integer 类初始化了一个数组,这个数组包含-128到127的数,当变量小于127时,会直接返回数组中的对象,而不是创建这个对象,当大于127时,便会new 一个对象出来。

    这也就解释了上面的输出情况。这里的设计思想也就是用到了享元模式的思想,将小范围但需大量使用的数字先初始化,直接返回需要的对象,这是典型的以时间换取空间的思想

  • 相关阅读:
    数组和字符串//寻找数组的中心索引
    队列&栈//钥匙和房间
    队列&栈//01 矩阵
    队列&栈//图像渲染
    队列&栈//字符串解码
    队列&栈//用队列实现栈
    队列&栈//二叉树的中序遍历
    队列&栈//目标和
    队列&栈//克隆图
    队列&栈//逆波兰表达式求值
  • 原文地址:https://www.cnblogs.com/cherish010/p/8565602.html
Copyright © 2011-2022 走看看