免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2459 | 回复: 7
打印 上一主题 下一主题

Java垃圾回收的只是对象? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-10-19 10:30 |只看该作者 |倒序浏览
Java垃圾回收机制,只回收对象?好多书都是这样说的,想问一下,那基本数据类型就不是一个对象,而且创建在堆栈中,垃圾回收机制岂不是回收不了了?

论坛徽章:
0
2 [报告]
发表于 2009-10-20 21:29 |只看该作者
“基本数据类型就不是一个对象,而且创建在堆栈中? ” ?  =.=

堆栈是什么意思?是指堆(heap)内存?还是指栈(stack)内存?
我想问下,它怎么个创建在你所说的"堆栈"内存中?

希望LZ好好看些那些书内存分析的那些章节(别告诉我没有)。

论坛徽章:
0
3 [报告]
发表于 2009-10-21 13:05 |只看该作者

回复 #2 fighting86 的帖子

我看的是Java编程思想中这样说的,
他说的哪个堆栈,应该说是栈好像会好一点,
因为下面还有一个堆,是new 出来的对象的存放的地方。
Java垃圾只回收new出来的对象,那些不是new出来的怎么办?
基本数据类型就不是一个对象,怎么回收呢?

还望高手指条明路。

论坛徽章:
0
4 [报告]
发表于 2009-10-21 15:39 |只看该作者
函数结束,变量也就消失了

论坛徽章:
0
5 [报告]
发表于 2009-10-25 09:34 |只看该作者
“因为下面还有一个堆,是new 出来的对象的存放的地方。
Java垃圾只回收new出来的对象,那些不是new出来的怎么办?
基本数据类型就不是一个对象,怎么回收呢?”

既然对是new出来的对象存放的地方。而一般的基本数据类型(局部变量)不是一个对象,那它怎么可能放在堆里面呢?
基本数据类型的变量(局部变量),如果不是封装在对象里面,都是放在栈的,而且,函数(方法)调用完毕后,会自动消失(为什么要用栈来存局部变量?而不是其他内存?)。
如果,你想将一个基本数据类型放进堆内存,只有封装它了……

补充:
一般操作系统的内存管理跟下面4块有关:
堆内存:放对象(new出来的东西)
栈内存:局部变量
数据区:存 静态变量 & 字符常量
代码区:就放代码,包括里面的那些方法

基本上就这些,另外,Thinking in Java 建议去看原版,有的翻译不好。
Heap(堆) 和 Stack(栈)区别很大的,本质上。
反正,这本书以后都要留着参考,翻多了,就习惯了。

[ 本帖最后由 fighting86 于 2009-10-25 09:35 编辑 ]

论坛徽章:
59
2015七夕节徽章
日期:2015-08-24 11:17:25ChinaUnix专家徽章
日期:2015-07-20 09:19:30每周论坛发贴之星
日期:2015-07-20 09:19:42ChinaUnix元老
日期:2015-07-20 11:04:38荣誉版主
日期:2015-07-20 11:05:19巳蛇
日期:2015-07-20 11:05:26CU十二周年纪念徽章
日期:2015-07-20 11:05:27IT运维版块每日发帖之星
日期:2015-07-20 11:05:34操作系统版块每日发帖之星
日期:2015-07-20 11:05:36程序设计版块每日发帖之星
日期:2015-07-20 11:05:40数据库技术版块每日发帖之星
日期:2015-07-20 11:05:432015年辞旧岁徽章
日期:2015-07-20 11:05:44
6 [报告]
发表于 2009-10-25 20:53 |只看该作者
垃圾回收只回收不使用的对象吧。

论坛徽章:
0
7 [报告]
发表于 2009-10-26 12:45 |只看该作者

回复 #5 fighting86 的帖子

搞的这么精辟,不知道是怎么学的?看的是什么书?
不过,不是new出来的对象都放到哪里的。比如:class.forName()

论坛徽章:
0
8 [报告]
发表于 2009-10-26 17:19 |只看该作者
楼主学习过C吗?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP