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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 黑马新人 中级黑马   /  2014-11-23 14:10  /  1317 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

栈内存中存储的是方法中的变量,当程序结束就释放。而堆内存中存储的是对象,只有不被引用时才会销毁。。是这样吗

评分

参与人数 1技术分 +1 收起 理由
王震阳老师 + 1 赞一个!

查看全部评分

7 个回复

倒序浏览
不同代码块中的变量的生命周期是不一样滴,堆内存中的对象没有引用是会便成垃圾滴,会被自动回收,当然也可以被手动回收……
回复 使用道具 举报
共同学习:
1.所有的基本数据类型(值类型)全部存储在栈里面。
2.引用类型,他的实体存储在堆里面,而他的引用存储在栈里面。
3.对象的所有属性的值如果不是单例或者静态的,都存储在堆里面。
4.静态类型的成员一般存储在静态存储区域中。
垃圾回收:对于内存回收机制系统都有自己的算法,即使当前对象没有任何地址指向它,这个对象所占用的内存也不会立刻被垃圾回收器回收。

评分

参与人数 1技术分 +1 收起 理由
王震阳老师 + 1 赞一个!

查看全部评分

回复 使用道具 举报
水水贴!又学到了一点知识!
回复 使用道具 举报
栈内存中变量是方法结束就消失吧 。。。。。
回复 使用道具 举报
米家小九 来自手机 中级黑马 2014-11-24 06:24:06
地板
共同学习
回复 使用道具 举报
大神们回答的很详细了,谈一点自己的看法,堆里存的是实体,有地址值,不用时jvm会调用gc进行回收(或手动回收);而栈中的存的大都是局部变量,用完会自动释放。
回复 使用道具 举报
依米阳光 发表于 2014-11-23 22:30
共同学习:
1.所有的基本数据类型(值类型)全部存储在栈里面。
2.引用类型,他的实体存储在堆里面,而他的引 ...

大神回答的挺精辟的,学习了。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马