黑马程序员技术交流社区

标题: Java把内存分成两种,一种叫做栈内存,一种叫做堆内存?... [打印本页]

作者: 327037419    时间: 2015-8-30 21:19
标题: Java把内存分成两种,一种叫做栈内存,一种叫做堆内存?...
本帖最后由 327037419 于 2015-8-31 09:34 编辑

如题:分别什么意思堆栈??
作者: 327037419    时间: 2015-8-30 21:21
求助啊啊啊  
作者: zhangzhiyao    时间: 2015-8-30 21:29
只是内存的两个不同位置的不同叫法,就像北京分海淀区、中关村和朝阳区等等很多不同的地方。黑马基础班就分到了海淀区,就业班就可以去中关村。
作者: 327037419    时间: 2015-8-30 21:48
zhangzhiyao 发表于 2015-8-30 21:29
只是内存的两个不同位置的不同叫法,就像北京分海淀区、中关村和朝阳区等等很多不同的地方。黑马基础班就分 ...

回答的太口语了啊,我记得好像堆内存用于存放由new创建的对象和数组
作者: 马明良    时间: 2015-8-30 21:48
内存中开辟出的独立的区域,用来存储不同对象的。
作者: 327037419    时间: 2015-8-30 21:52
马明良 发表于 2015-8-30 21:48
内存中开辟出的独立的区域,用来存储不同对象的。

其实堆主要用来存放对象的,栈主要是用来执行程序的.,

恩这个 还接近些
作者: 327037419    时间: 2015-8-30 22:03
求大神彻底解决堆栈是什么!!!!!!!!!!
作者: 疯狂的小豆丁    时间: 2015-8-30 22:31
栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。

2、堆区(heap)— 由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表。

3、全局区(静态区)(static)— 全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域, 未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。程序结束后由系统释放。
作者: zhangzhiyao    时间: 2015-8-30 23:19
327037419 发表于 2015-8-30 21:48
回答的太口语了啊,我记得好像堆内存用于存放由new创建的对象和数组

只是两个内存去而已,new出来的东西都放入堆中,其他的比如main函数中的方法名、变量什么的都方入栈中。还有个内存位置叫方法区,用来存放类的
作者: 代晃    时间: 2015-8-30 23:41
现在就理解为存储的东西不一样




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