遇到的问题: new 了太多对象, 内存溢出了!!!
问题思考: 为什么 new 对象, new 代表新的, 但是新在哪里呢? 别告诉我 new 出来的东西地址值不一样, new 一个对象仅仅是为了获得一个地址值不一样的对象吗? No
个人认知: 类定义了规定了一群对象的具有的行为和属性, 而不同的对象之间应该表现在属性值不一样上啊!!! 行为方法无差别
那么 new 一个属性值一样并且不变的对象将毫无意义!!!
So 如何解决这种无意义的内存消耗呢? 单例模式, 多例子模式, 工厂模式 + 享元模式
享元模式常用技巧: 抽取可变属性, 重写 equals 和 hashcode 方法
常见的享元模式思考案例:
- String str1 ="HE"
- String str2 = "PAN"
- String str3 = "HE PAN"
- String str4 =str1+str2
- System.out.println(str3 == str4)
来源: http://www.bubuko.com/infodetail-2716427.html