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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© mars_b0ZZ0 中级黑马   /  2015-5-19 01:12  /  765 人查看  /  13 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 mars_b0ZZ0 于 2015-5-19 21:25 编辑

java中 堆和栈的区别:)

13 个回复

正序浏览
                    学习中。
回复 使用道具 举报
受教了,这个知识点差不多能理清楚了
回复 使用道具 举报
JVM中栈是线程私有的,栈中保存着一系列的栈帧,一个栈帧中保存着一个方法执行过程中变量的信息、操作数的信息、返回值地址等。
堆主要是用来存储对象的。你new的对象都放在堆上(静态变量、静态引用、类对象等除外,他们存放在方法区)。另外Java有一套垃圾回收的算法,会通过可达性分析来找出不可用对象,然后通过GC工具进行垃圾清除和内存的回收。
回复 使用道具 举报
沙发说的很是清楚啊
回复 使用道具 举报
xmmsbb 中级黑马 2015-5-19 17:25:07
9#
堆是用于储存对象的,释放空间是有垃圾处理机制随机完成的;栈是储存方法的,方法执行完就释放空间
回复 使用道具 举报
别人的回复就是我们学习的资料
回复 使用道具 举报
sxsxsx 中级黑马 2015-5-19 09:58:26
7#
学习学习
回复 使用道具 举报
每次看回复都能学到不少
回复 使用道具 举报
堆是储存对象,而栈是储存临时变量和局部变量的
回复 使用道具 举报
新new 出来的都会在堆空间.

点评

同意  发表于 2015-5-19 10:00
回复 使用道具 举报 1 0
ls回答的不错,,,,
回复 使用道具 举报
堆存储的是对象,栈存储的是变量,变量在使用完以后会在栈内存中释放内存,但是如果变量解除了与堆内存中的对象的引用关系,对象不会再内存中马上释放内存,会等待java的垃圾回收机制将其清理掉
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马