首页 / JAVA / java中对象的内存管理
java中对象的内存管理
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java中对象的内存管理,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1552字,纯文字阅读大概需要3分钟。
内容图文
我正在读这本关于数据结构的书,它涵盖了Java中的内存管理和孤立对象.教科书说明如下:
For example, consider the three assignment statements in the figure at
left. After the third assignment statement, not only do a and b refer
to the same Date object (1/1/2011), but also there is no longer a
reference to the Date object that was created and used to initialize
b. The only reference to that object was in the variable b, and this
reference was overwritten by the assignment, so there is no way to
refer to the object again. Such an object is said to be orphaned.
码:
Date a=new Date(12, 31, 1999);
Date b=new Date(1, 1, 2011);
b=a;
那句话是真的吗?不应该引用a(对象的内存位置Date(12,31,1999)是b的引用吗?这看起来像一个巨大的错误但是甚至有一张图片显示了12,31,1999的内存块是孤儿.
图片:
http://imageshack.us/f/818/3tkx.jpg/
解决方法:
在java中,您总是将右侧的内容指定给左侧的引用.
所以你的陈述说出这样的话:
>将新的Date对象Date(12,31,1999)分配给变量a
>将新的Date对象Date(91,1,2011)分配给变量b
>将变量a的引用分配给变量b.
如果我遵循这些步骤,它看起来像这样:
> a – >日期(1999年12月31日)
> a – >日期(1999年12月31日)
b – >日期(2011年1月1日)
> a – >日期(1999年12月31日)
b – >日期(1999年12月31日)
请注意,在此作业完成后,日期(2011年1月1日)的原始对象不再被引用,因为您无法从应用程序中获取它.它的原始引用变量b被覆盖,现在从a和b引用对象Date(12,31,1999).日期(91,1,2011)是孤儿,准备垃圾收集.
想象一下,好像你拿着一把剑和一把斧头.首先你拿起一把剑.然后你拿起斧头.之后,你放下剑,用双手拖动你手中的斧头.在那之后你没有握住你丢下的剑(它丢失了).
编辑:如果你告诉作者这本书他会感激,这是一个错误.
内容总结
以上是互联网集市为您收集整理的java中对象的内存管理全部内容,希望文章能够帮你解决java中对象的内存管理所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。