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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

栈空间存储的都是变量,堆空间存储常量。这样说对吧

8 个回复

倒序浏览
cat73 黑马帝 2016-7-18 15:39:22
沙发
并不对哟。。。
回复 使用道具 举报
cat73 黑马帝 2016-7-18 15:47:24
藤椅
栈里存储的有:
基础数据类型
对象引用
返回地址

各项解释:
基础数据类型 int long double 等等
对象引用 直接或间接的指向了一个堆中的对象
返回地址 当前的方法执行完毕后,应该 return 到哪里继续执行
回复 使用道具 举报
Buer 来自手机 中级黑马 2016-7-18 23:04:10
板凳
cat73 发表于 2016-7-18 15:47
栈里存储的有:
基础数据类型
对象引用

赞----------
回复 使用道具 举报
栈内存里存放的是局部变量,堆内存存的是数组和对象,每个实体都有地址值。
回复 使用道具 举报
cat73 发表于 2016-7-18 15:47
栈里存储的有:
基础数据类型
对象引用

比如 int a =1,符号a,与数值 1 ,都是存放在栈空间的内存上吗,将1赋值给a的时候,是将 1的地址值,存放在a 所在的内存空间里了吗
回复 使用道具 举报
cat73 黑马帝 2016-7-21 08:21:52
7#
Buer 发表于 2016-7-21 01:04
比如 int a =1,符号a,与数值 1 ,都是存放在栈空间的内存上吗,将1赋值给a的时候,是将 1的地址值,存 ...

你是说方法里的局部变量?
实际上编译后根本没有变量名这个东西。
只有第几个变量。
也就是说这个 a 是不存储的。
只有 1 这个数字会被存储到它对应的局部变量的位置。
回复 使用道具 举报
Buer 来自手机 中级黑马 2016-7-21 13:21:53
8#
cat73 发表于 2016-7-21 08:21
你是说方法里的局部变量?
实际上编译后根本没有变量名这个东西。
只有第几个变量。

如果再次赋值a=2,数字2怎么找到之前1所在的内存地址呢,a去哪里了
回复 使用道具 举报
栈 堆 和常量池 是三块不同的区域    new出来的对象都在堆中有地址值
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马