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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Armstrong0825 中级黑马   /  2015-8-31 23:52  /  2390 人查看  /  25 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

      在教学视频中 堆 栈 方法区 都是内存吗 是不是在内存的不同地方? 视频中说对象存在栈中 然后成员存在堆中  静态成员存在方法区中 ...
      这几个的区别是什么 ? 如果都是在一样的内存上 为什么把对象 和成员变量分开存放呀 这样在调用对象的时候不是多了一次地址寻址吗 多一次寻址就代表延迟访问速度  ,或者是堆在硬盘区域? 当访问对象的时候 如果没有访问则没事 调用的时候再去硬盘上去找相关数据?就像操作系统里面的缺页调度那样  
      反正现在对三个的区别不清楚 觉得最有可能的是栈在硬盘 堆和共享区在内存 是这样的吗?

25 个回复

倒序浏览
同求深度解析
回复 使用道具 举报
都在内存里,就好比你把易碎品存在一个仓库,把一般的存在另一个仓库,不好卖的存在另个仓库里一样,分类用的时候会比较方便.栈内存的东西用完了就被释放了,堆内存相当于有个回收站,能存稍微长一点点时间,方法区等学面向对象的时候就知道存什么了.
回复 使用道具 举报
这些区域都是在内存中,我知道的是,程序在调用函数时要做压栈和出栈的动作,创建实例时实例的内容是在堆内存,引用部分在栈内存。
回复 使用道具 举报
确实不可能放在硬盘
回复 使用道具 举报
这么深奥的问题    旁听一下。。。。
回复 使用道具 举报
都在内存里,方法区应该在内存低地址区;堆内存在方法区上面;栈内存在系统内存下面,系统内存在内存高地址区;
回复 使用道具 举报
旁听一下
回复 使用道具 举报

哈哈 我应该是弄清楚了 这些都是在内存里面 只是内存的地址不一样 (从不同的地方开始,结束,他们在内存中可能是相邻的排下去的),分开是为了操作系统的管理
回复 使用道具 举报
果蝇 发表于 2015-9-1 00:02
都在内存里,就好比你把易碎品存在一个仓库,把一般的存在另一个仓库,不好卖的存在另个仓库里一样,分类用的时 ...

大谢  这是我等待的终极版答案  一次就点拨我了   请允许我叫你一声师傅  太有用啦
回复 使用道具 举报
好!!!!!!!!!!!!!!!!!!!
回复 使用道具 举报
shdosh 发表于 2015-9-1 00:03
这些区域都是在内存中,我知道的是,程序在调用函数时要做压栈和出栈的动作,创建实例时实例的内容是在堆内 ...

谢谢啦 你的回复从源头上解决了我的问题  thankyou
回复 使用道具 举报
binarycoc 发表于 2015-9-1 00:08
确实不可能放在硬盘

是的  我也是这样想的 跟帖的高手们解决了我的问题  你可以瞄瞄
回复 使用道具 举报
0825王欢 发表于 2015-9-1 00:09
这么深奥的问题    旁听一下。。。。

一丢丢的深奥啦 大神已经给我解决了  哈哈 挺有用的答案 你可以瞄瞄
回复 使用道具 举报
凌端浩 发表于 2015-9-1 00:47
都在内存里,方法区应该在内存低地址区;堆内存在方法区上面;栈内存在系统内存下面,系统内存在内存高地 ...

谢谢啦  所有的高手们都说是在内存里  我就深信不疑啦
回复 使用道具 举报
这是一个课题,三言两语说不清,期待大神详解
回复 使用道具 举报
BG6FVG 发表于 2015-9-1 23:20
好!!!!!!!!!!!!!!!!!!!

哈哈 一起学习 加油咯
回复 使用道具 举报
lion_good 发表于 2015-9-2 10:46
这是一个课题,三言两语说不清,期待大神详解

感觉大神们已经说的比较清楚了 哈哈 简短精炼的回答  
回复 使用道具 举报
Armstrong0825 发表于 2015-9-2 23:43
感觉大神们已经说的比较清楚了 哈哈 简短精炼的回答

是的!!!!!!!!!!!!!!!!
回复 使用道具 举报
感觉好有深度啊
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马