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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© WakeUp 中级黑马   /  2014-11-2 22:02  /  1146 人查看  /  5 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 WakeUp 于 2014-11-3 19:31 编辑

String、Integer类等都实现了常量池技术,什么是常量池技术,具体体现在哪儿?

5 个回复

倒序浏览
类的对象都是通过new来获得的,常量池就是说在创建对象前,会先去池中找下有没有相同的对象已经存在,如果有,则直接把地址指向对象,如果没有 才会创建对象。
回复 使用道具 举报
striker 发表于 2014-11-3 08:09
类的对象都是通过new来获得的,常量池就是说在创建对象前,会先去池中找下有没有相同的对象已经存在,如果 ...

是不是常量池内的对象也有一个地址值
String s1 = "abc";指向的是常量池内的地址
String s2 = new String("abc");s2指向堆内存中的一个地址,堆内存中存放的是常量池中对象的地址?

点评

我的理解是这样的。不过我也不能确定对不对。  发表于 2014-11-3 17:23
回复 使用道具 举报
应该就是一些常用的对象不需要你创建,内存有,这些对象使用很频繁,你自己建会降低效率吧
回复 使用道具 举报
常量都放在了一个专门放常量的地方,常量本身是不可改的。所以可以是可以重用的,这样可以节省空间,提高效率。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马