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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

我的理解是栈内存是不是就是cpu内部的存储空间,而堆内存就是指电脑内存呢?还是都是在内存里面,只不过是一块内存定义了不同的名称呢?

8 个回复

倒序浏览
栈和堆都是内存,是人为的划分。cpu内部的存储空间是寄存器。
回复 使用道具 举报
fantacyleo 发表于 2014-7-11 09:30
栈和堆都是内存,是人为的划分。cpu内部的存储空间是寄存器。

我想也应该是这样吧,谢啦!
回复 使用道具 举报
栈内存和堆内存都在内存中,都是人为划分的,不过两者的数据结构不同,栈内存的数据是先进后出(后进先出),而堆内存是无序的,顺序随意。
回复 使用道具 举报
cpu的叫寄存器空间,速度最快的,堆栈都是在内存当中的
回复 使用道具 举报
都是内存的一块区域。只不过java有自己的划分定义。
回复 使用道具 举报
晴儿 中级黑马 2014-7-11 11:32:40
7#
Object obj = new Object();以上这句话,会把obj这个引用放进栈内存,再说白一点,就是这个对象的名字obj放进栈内存,栈内存运行速度较快,用于查找索引(也就是名字) 而new Object()会在堆内存中开辟一块空间给这个对象,也就是对象的实体都在堆内存中 ,堆内存速度慢但是成本低,空间较大,用以存放程序
回复 使用道具 举报
学习了
回复 使用道具 举报
晴儿 发表于 2014-7-11 11:32
Object obj = new Object();以上这句话,会把obj这个引用放进栈内存,再说白一点,就是这个对象的名字obj放进 ...

要深入理解这些东西就应该涉及到了java的编译原理了吧,以前只懂一点C语言,编译原理什么的也没学过,呵呵。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马