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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

常量池在堆中还是方法区中

6 个回复

倒序浏览
对象都放在堆内存中,基本数据类型和引用数据类型的变量都放在栈空间中,局部变量也是变量,也在堆内存中,不过随着方法的调用完毕而消失,跟是不是被final修饰无关。

点评

没懂…  发表于 2016-2-15 15:24
回复 使用道具 举报
举个例子:
int a=3;这是一个基本数据类型的变量,其中a的空间是3,而a是一个地址值而已。
a在栈内存中,3在常量池中。
然后,局部变量被fianl修饰后,位置不变,被static修饰后,放在常量池中。
这么说明白了吗?
回复 使用道具 举报
补充一说,基本和引用类型的变量都在栈中,局部变量也就是方法中的变量,变量就在栈中,不过随着方法调用完毕而消失,跟是不是被final修饰无关的
回复 使用道具 举报
方法区中
回复 使用道具 举报
yuchifeifan 来自手机 中级黑马 2016-2-17 00:21:35
地板
yuexiazixia 发表于 2016-2-16 10:04
补充一说,基本和引用类型的变量都在栈中,局部变量也就是方法中的变量,变量就在栈中,不过随着方法调用完 ...

那如果基本数据类型或引用数据类型的 变量在成员位置他在堆里还是栈里啊
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马