A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

对象池化对于那一类对象而言存在必要性,举例说明?

评分

参与人数 1黑马币 +1 收起 理由
乔兵 + 1

查看全部评分

2 个回复

倒序浏览
对象池使用的基本思路是:将用过的对象保存起来,等下一次需要这种对象的时候,再拿出来重复使用,从而在一定程度上减少频繁创建对象所造成的开销。
并非所有对象都适合拿来池化――因为维护对象池也要造成一定开销。对生成时开销不大的对象进行池化,反而可能会出现“维护对象池的开销”大于“生成新对象的开销”,从而使性能降低的情况。但是对于生成时开销可观的对象,池化技术就是提高性能的有效策略了。

评分

参与人数 1技术分 +1 收起 理由
乔兵 + 1

查看全部评分

回复 使用道具 举报
目测也就是数字对象和字符串对象: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();

评分

参与人数 1技术分 +1 收起 理由
乔兵 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马