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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

请大家详细说明一下常量池的作用范围,
一个父类的常量池是否会对子类起作用?
子类再次存入常量,是存入谁的常量池?
还是每个类都有一个常量池,子类只是将父类常量池中的常量复制了一份于自己的常量池中?
常量池中的每个常量生命周期是常量装入区域(方法 代码块 构造函数 内部类)结束而分个结束,还是在所在类结束时,都结束?

请大家下关系说明!各抒己见!

3 个回复

倒序浏览
子类不需要父类常量池,初始化子类就初始化了父类,父类的常量自然初始化。

常量是在类消失才消失(Class对象)
init在首次加载类的时候初始化常量。

评分

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

查看全部评分

回复 使用道具 举报
在admin页面无意中看到,你说想这贴“提升下位置”,看来这贴真的被忽略了。这类深入一些的问题,往往中文资料难找,尝试英文的吧。个人同意楼上的,子类的常量池应与父类无关。

具体最好做实验测试下,黑马日记还没写,弄完那个,再过来看看有无人加入讨论。
回复 使用道具 举报
常量池

虚拟机必须为每个被装载的类型维护一个常量池。常量池就是该类型所用到常量的一个有序集和,包括直接常量(string,integer和floating point常量)和对其他类型,字段和方法的符号引用。对于String常量,它的值是在常量池中的。而JVM中的常量池在内存当中是以表的形式存在的,对于String类型,有一张固定长度的CONSTANT_String_info表用来存储文字字符串值,注意:该表只存储文字字符串值,不存储符号引用。说到这里,对常量池中的字符串值的存储位置应该有一个比较明了的理解了

谢谢计算机原理方面知识.很有理解意思的问题.不要就不要太纠结

评分

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

查看全部评分

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