黑马程序员技术交流社区
标题:
享元模式求教
[打印本页]
作者:
LuckyQS
时间:
2013-12-31 14:13
标题:
享元模式求教
本帖最后由 LuckyQS 于 2014-1-2 09:32 编辑
Integer i1 = 127;
Integer i2 = 127;
System.out.println(i1 == i2);//true
Integer i3 = 128;
Integer i4 = 128;
System.out.println(i3 == i4);//false
我想问一下自动装箱时为什么数值在byte范围内容内时,会指向同一个对象。
张老师说这是享元模式,不明白什么是享元模式?请大神解释一下。
作者:
高波
时间:
2013-12-31 18:44
享元模式(英语:Flyweight Pattern)是一种软件设计模式。它使用共享物件,用来尽可能减少内存使用量以及分享资讯给尽可能多的相似物件;它适合用于当大量物件只是重复因而导致无法令人接受的使用大量内存。通常物件中的部分状态是可以分享。常见做法是把它们放在外部数据结构,当需要使用时再将它们传递给享元。
因为在byte范围内的数值用的比较频繁,为了避免重复多次创建对象占用大量内存,故而使用享元设计模式,分配一块内存给byte范围内的数值,当重复使用到这个范围内数值进行装箱时,只需在内存内创建一遍对象就行了,节省内存。
作者:
高丽华
时间:
2013-12-31 19:38
享元模式(英语:Flyweight Pattern)简单的来说就是---->有很多小的对象,其中他们有很多的属性相同,这时就把他们变成一个对象,把不同的属性变成方法的参数,称之为外部状态;相同的属性称之为这个对象的内部状态。
作者:
恩恩
时间:
2014-1-1 04:17
享元模式就是那些经常用调用的数据放到内存中,然后调用的时候他们就会调用这一个,这个里面的是一些比较写的数据,就是byte里面包括的,数据大了,就不行了。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2