黑马程序员技术交流社区

标题: 内存中的堆、栈、buffer都是什么鬼东西? [打印本页]

作者: Errors    时间: 2015-4-16 08:22
标题: 内存中的堆、栈、buffer都是什么鬼东西?
经常把堆栈记混了,buffer是缓冲区的意思吗?我记得学习汇编的时候好像用过这个东西。
作者: 麻木    时间: 2015-4-18 17:38
在下也学过汇编 大家研究下
1.你可以用汇编指令制定内存里面的一段为堆栈区 从而实现先进后出的数据操作 通常 局部变量和函数的实参都是压堆栈传递的(好像是编译原理里面讲得)

堆 就是一般的内存呗 你要就操作系统说 操作系统就分内存给你

buffer的意义更高一级把 例如你下载东西到磁盘 需要在内存里面弄buffer buffer到一定程度 在把buffer数据放磁盘里面 然后buffer清空 接着装数据
作者: 15098037606    时间: 2015-4-18 18:35
好高深的样子。
作者: oucding    时间: 2015-4-18 20:54
同问 ,内存中到底分了多少块区域啊
作者: 蓝鸟    时间: 2015-4-18 21:00
堆是放对象,站是放成员变量,数组,字符串等,另外还有一个常量区
作者: 麻木    时间: 2015-4-19 12:27
根据在下对汇编底层的理解,其实内存就是分2块 普通内存 和 堆栈区 普通内存就是直接访问就是了 在汇编这个层面是不存在分不分配内存的 只要知道哪些内存地址没人用就好了 分配内存是基于操作系统的程序这一层的说法。

堆栈在汇编里面是指定一块连续的内存区域 作为单独的堆栈区内存来使用 是有专门的 push pop汇编指令来操作的

根据编译原理的学习 临时变量 和 函数的参数的传递 都是通过堆栈区的传递的 因为用的时间短 用完pop就OK了 而全局变量而言 则是 直接赋值倒某一普通内存单元(堆)对象实例也是这么操作的。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2