社区
C#
帖子详情
[讨论] 弱引用有什么好处?
tangligang
2004-01-08 04:55:13
说弱引用是提高性能的一种方式,用于减少托管堆中大对象的压力,这怎么理解呢?
...全文
422
12
打赏
收藏
[讨论] 弱引用有什么好处?
说弱引用是提高性能的一种方式,用于减少托管堆中大对象的压力,这怎么理解呢?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
lys1978900
2004-02-02
打赏
举报
回复
写错了,应该是
class1 A = new class1();
class1 B = A;
这时在堆中有两个class1对象?
=====================================
只存在一个,简单的说,是堆中同一个位置得2个引用。
tangligang
2004-02-02
打赏
举报
回复
如何减少所占资源?
flying310
2004-01-30
打赏
举报
回复
减少所占资源
flying310
2004-01-30
打赏
举报
回复
减少资源。
tangligang
2004-01-30
打赏
举报
回复
up
tangligang
2004-01-08
打赏
举报
回复
写错了,应该是
class1 A = new class1();
class1 B = A;
这时在堆中有两个class1对象?
tangligang
2004-01-08
打赏
举报
回复
TO: YAOTIEBING(我爱我家)
你的意思是:
class1 A = new class1();
class2 B = A;
这时在堆中有两个class1对象?
yaotiebing
2004-01-08
打赏
举报
回复
不再堆中分配空间!!真正引用是会变成强引用
tangligang
2004-01-08
打赏
举报
回复
flysnowjava(大象~大象~鼻子长) 兄:
本来实际存在的是一个对象
可以当n个来使用
你的意思是通过Target属性得到对象的引用吗?这样做有意义吗?直接调用强引用赋值不是一样吗?
renrenqq
2004-01-08
打赏
举报
回复
以下是msdn中的内容
公共语言运行库“垃圾回收”机制回收分配给对象的无法访问的(即“不可到达的”)内存。如果对对象的所有引用变得无效(例如,将那些引用设置为空引用(Visual Basic 中为 Nothing)),则该对象成为不可到达的。
垃圾回收将调用对象的 Finalize 方法(即执行“终结”),如果存在这样的方法并且指示这样做。终结完成后,如果以某种方式重新获取并重用垃圾回收对象,则将发生不可预知的结果。
被直接或间接引用的对象是“可到达的”,不允许垃圾回收器回收它。对可到达的对象的引用称为“强引用”。
“弱引用”也引用可到达的对象(称为“目标”)。用户通过将 Target 属性的值赋给变量来获取对目标的强引用。但是,如果没有对目标的强引用,目标将变得符合垃圾回收条件,即使它仍然有弱引用。
在对象变为符合垃圾回收条件时的时间和它被回收的时间之间可能有一个延迟。如果用户试图在目标已被回收后检索它,将只会检索到空引用。如果目标尚未被回收,则将检索到有效的引用。
对象可以是已使用的(即“活着的”);变成未使用的并符合垃圾回收条件(即“死掉的”);然后再被使用(即“复活的”)。但是,如果在终结后访问复活的对象,将导致不可预知的行为。
WeakReference 对象可以指定在终结之后是否保持对其目标的引用;即弱引用是否应跟踪目标的复活。不跟踪复活的弱引用称为“短弱引用”,跟踪复活的弱引用称为“长弱引用”。
renrenqq
2004-01-08
打赏
举报
回复
只知道
弱引用在引用对象的同时仍然允许对该对象进行垃圾回收。
codinghello
2004-01-08
打赏
举报
回复
本来实际存在的是一个对象
可以当n个来使用
商业分析万千种,为什么偏爱PowerBI?
从基本的能力认识PowerBI,通过本节课程可以知道PowerBI能干什么?有什么优势?以专题
讨论
的方式结合动手实验的操作,让大家从了解并深入认识以及初步掌握PowerBI这项技能。详细讲解了Power BI的各项能力,以及可以达到的效果,并且通过按步骤的方式带领学员进行实际操作和效果演示。
强引用、软引用、
弱引用
、幻象引用有什么区别?
考虑一下这样的场景,按照 Java 语言规范,如果一个对象没有指向强引用,就符合垃圾收集的标准,有些时候,对象本身并没有强引用,但是也许它的部分属性还在被使用,这样就导致诡异的问题,所以我们需要一个方法,在没有强引用情况下,通知 JVM 对象是在被使用的。幻象引用仅仅是提供了一种确保对象被 finalize 以后,做某些事情的机制,比如,通常用来做所谓的 Post-Mortem 清理机制,我在专栏上一讲中介绍的 Java 平台自身 Cleaner 机制等,也有人利用幻象引用监控对象的创建和销毁。
WeakReference
弱引用
使用的坑,需要注意的点
Android中
弱引用
常常用于替代Context等强引用,是内存优化的一种方式,防止内存泄漏。 比如Handler中如果引用context,AndroidStudio会自动提醒开发者改为
弱引用
。 (这里我习惯性用
弱引用
替代强引用做内存优化,暂不
讨论
软引用Softreference)
弱引用
的
好处
显而易见,开发者无需担心内存被占用没有及时释放导致的内存泄漏问题,但也会引发
弱引用
对象空指针问题NullPointerException。 因为Java的内存自动回收机制,当内存告警或
弱引用
长时间不用的.
Python 中
弱引用
的神奇用法与原理探析
Python 中
弱引用
的神奇用法与原理探析
弱引用
可以在不产生引用计数的前提下,对目标对象进行管理,常用于框架和中间件中。
弱引用
看起来很神奇,其实设计原理是非常简单的观察者模式。 作者:佚名来源:Python开发者|2021-12-09 15:45 收藏 分享 背景 开始
讨论
弱引用
( weakref )之前,我们先来看看什么是
弱引用
?它到底有什么作用? 假设我们有一个多线程程序,并发处理应用数据: #占用大量资源,创建销毁成本很高 classData: ...
java中的
弱引用
(WeakReference)
前言: 再高的山峰也有跨过的时候,再遥远的路,终有一天也会抵达终点 ----- 送给正在拼搏的所有人 何为
弱引用
我们知道java中一切皆对象,而这个对象可以称之为引用,它指向了堆内存的一块地址,在说
弱引用
之前,先说一下强引用:强引用就是我们平时new出来的普通对象,比如Person p = new Person(),p对象一般来说可以称之为强引用,强引用有什么特点呢? 指向了堆内存的一块地址 如果GC ROOT根可达,且引用链皆为强引用,则不会被垃圾回收 这些概念相信大家都
C#
110,536
社区成员
642,578
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章