黑马程序员技术交流社区

标题: 老毕基础视频关于栈内存与堆内存浅解 [打印本页]

作者: ___瘦不了    时间: 2014-8-22 11:47
标题: 老毕基础视频关于栈内存与堆内存浅解
JAVA运行时在内存中划分五片空间对自己的数据进行存储,分别是方法区,本地方法区,寄存器,栈内存,堆内存。今天主要对栈内存与堆内存进行一个总结。
栈内存:由函数在栈内存中开辟空间,主要存放变量,数据使用完毕后内存自动释放。
堆内存:主要用于存放实体,将实体在堆内存中的地址赋予变量从而确定变量值;堆内存中的默认初始化值为0;当实体在堆内存中使用完毕后,由JAVA虚拟机自动启动垃圾回收机制不定时清除实体从而释放内存

作者: ___瘦不了    时间: 2014-8-22 13:41
新人第一帖,果断沉了:'(
作者: Nullifier    时间: 2014-8-22 17:31
___瘦不了 发表于 2014-8-22 13:41
新人第一帖,果断沉了

刚开始还能整明白,后来就弄糊涂了好像还有个方法区什么的
作者: ___瘦不了    时间: 2014-8-22 18:03
Nullifier 发表于 2014-8-22 17:31
刚开始还能整明白,后来就弄糊涂了好像还有个方法区什么的

来来来,你这么给我面子,我必须给你整明白了,你说的那个我上面已经说了,就是由方法在栈内存中开辟出一个内存空间,就好比你定义了一个main函数,main函数就在栈内存中开辟一个内存空间,而main函数里的变量就存在于main函数所开辟的这个空间当中
作者: Nullifier    时间: 2014-8-22 18:11
额,就是栈里边放虚的,堆里边放实的……
作者: ___瘦不了    时间: 2014-8-22 18:16
Nullifier 发表于 2014-8-22 18:11
额,就是栈里边放虚的,堆里边放实的……

你这总结简单粗暴!
作者: Nullifier    时间: 2014-8-22 18:37
哈哈,就先这么记着了
作者: fantacyleo    时间: 2014-8-22 18:40
___瘦不了 发表于 2014-8-22 18:03
来来来,你这么给我面子,我必须给你整明白了,你说的那个我上面已经说了,就是由方法在栈内存中开辟出一 ...

定义main函数并不会导致栈内存中开辟空间,只有你定义的函数被调用时,栈内存中才有可能会开辟空间
作者: 默默丶    时间: 2014-8-22 18:58
这个虚实说的好
作者: ___瘦不了    时间: 2014-8-22 19:04
fantacyleo 发表于 2014-8-22 18:40
定义main函数并不会导致栈内存中开辟空间,只有你定义的函数被调用时,栈内存中才有可能会开辟空间 ...

你这回复更精确了,确实是少了句函数被调用时,初级黑马小菜鸟需要你们助长和鼓励




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