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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© yangyujoe 中级黑马   /  2014-10-8 17:26  /  1193 人查看  /  2 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文

所有的可执行语句都在栈内运行,也就是说栈内存是直接和CPU的计算进行交互的,而堆内存只用来放数据,可以这样理解吗?求教

2 个回复

倒序浏览
程序在运行时要取数据,而栈内存中只是存放了数据的地址,所以在CPU运行程序取数据时通过栈内存中取地址,得到地址再去堆内存中取数据。所以应该是CPU同时和堆内存、栈内存交互的。

评分

参与人数 1黑马币 +2 收起 理由
星河鹭起 + 2 赞一个!

查看全部评分

回复 使用道具 举报 1 0
张波 发表于 2014-10-9 09:17
程序在运行时要取数据,而栈内存中只是存放了数据的地址,所以在CPU运行程序取数据时通过栈内存中取地址, ...

而具体代码则在方法区中,那CUP也要去方法区中拿代码到栈内存再运行吗?而且static成员也在方法区中,也是这样吗?
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马