黑马程序员技术交流社区

标题: 对象池化对于那一类对象而言存在必要性,举例说明? [打印本页]

作者: Mr.Z.Lee    时间: 2013-11-4 14:37
标题: 对象池化对于那一类对象而言存在必要性,举例说明?
对象池化对于那一类对象而言存在必要性,举例说明?
作者: 赵许星    时间: 2013-11-4 14:53
对象池使用的基本思路是:将用过的对象保存起来,等下一次需要这种对象的时候,再拿出来重复使用,从而在一定程度上减少频繁创建对象所造成的开销。
并非所有对象都适合拿来池化――因为维护对象池也要造成一定开销。对生成时开销不大的对象进行池化,反而可能会出现“维护对象池的开销”大于“生成新对象的开销”,从而使性能降低的情况。但是对于生成时开销可观的对象,池化技术就是提高性能的有效策略了。

作者: 零下五度的水    时间: 2013-11-4 19:36
目测也就是数字对象和字符串对象:Integer,Double... & String
它们的共性:封装的值为常量(一个对象一个值,不能变动),且会被用来运算(String那个是拼接字符串)
据说Integer的128+就不是池化的了,那就是说【数字类型】的还得是平时用的多,躺着都能中枪这种人品的才有这机会
话说,我刚刚做了个测试:
String a1 = new String("a"), a2 = "a"; //a1!=a2
String s1="abc", s2="abc"; //s1==s2
s1+=s1; s2+=s2; //s1!=s2
嗯,这又说明。。。
String的中枪概率比较低,所以需要手动加入,直接写出来这种会自动加入池中:"a","abc", 其他的则需要手动调用intern方法:a2==a1.intern();




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2