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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 王程 中级黑马   /  2012-8-4 11:46  /  1606 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

String str="abc";
在内存中把str存储在栈内存中,而把"abc"方法常量池中,我想问常量池在内存中属于哪个区域,是堆内存中还是栈内存中,或者其他区域?

评分

参与人数 1技术分 +1 收起 理由
张_涛 + 1 赞一个!

查看全部评分

3 个回复

倒序浏览
既是堆内存中也不是是栈内存中,在方法区中的。
回复 使用道具 举报
首先要搞清楚Java对内存的化分      
java在内存中一共划分了五块区:堆、栈、方法区、本地方法区、寄存区
JVM在启动的时候默认分配内存空间是64MB,这64MB空间就划分成了五块。不管是哪个区都是内存的一部分,只不过堆内存相对要分配的大一些。
这里要搞清楚,常量池是属于类型信息的一部分,在JVM内存的方法区中。
希望能够帮到楼主

评分

参与人数 1技术分 +1 收起 理由
张_涛 + 1 赞一个!

查看全部评分

回复 使用道具 举报
哦,明白了,问题解决了,谢谢啦
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马