黑马程序员技术交流社区

标题: java中堆和栈的区别 [打印本页]

作者: mars_b0ZZ0    时间: 2015-5-19 01:12
标题: java中堆和栈的区别
本帖最后由 mars_b0ZZ0 于 2015-5-19 21:25 编辑

java中 堆和栈的区别:)
作者: 想要那片海    时间: 2015-5-19 08:11
堆存储的是对象,栈存储的是变量,变量在使用完以后会在栈内存中释放内存,但是如果变量解除了与堆内存中的对象的引用关系,对象不会再内存中马上释放内存,会等待java的垃圾回收机制将其清理掉
作者: 枕寒流    时间: 2015-5-19 08:15
ls回答的不错,,,,
作者: L番茄X    时间: 2015-5-19 08:19
新new 出来的都会在堆空间.
作者: 晚风吹舟行    时间: 2015-5-19 08:57
堆是储存对象,而栈是储存临时变量和局部变量的
作者: guojiadui    时间: 2015-5-19 09:12
每次看回复都能学到不少
作者: sxsxsx    时间: 2015-5-19 09:58
学习学习
作者: 冷雨敲窗被未温    时间: 2015-5-19 10:32
别人的回复就是我们学习的资料
作者: xmmsbb    时间: 2015-5-19 17:25
堆是用于储存对象的,释放空间是有垃圾处理机制随机完成的;栈是储存方法的,方法执行完就释放空间
作者: Mr7952    时间: 2015-5-19 18:50
沙发说的很是清楚啊
作者: LoseMyCat    时间: 2015-5-19 18:55
JVM中栈是线程私有的,栈中保存着一系列的栈帧,一个栈帧中保存着一个方法执行过程中变量的信息、操作数的信息、返回值地址等。
堆主要是用来存储对象的。你new的对象都放在堆上(静态变量、静态引用、类对象等除外,他们存放在方法区)。另外Java有一套垃圾回收的算法,会通过可达性分析来找出不可用对象,然后通过GC工具进行垃圾清除和内存的回收。
作者: zq19910303    时间: 2015-5-19 18:56
受教了,这个知识点差不多能理清楚了
作者: Always,    时间: 2015-5-19 19:03
                    学习中。




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