弱引用是对内存中的对象的引用,该对象由于与对象的关联而不会阻止该对象被垃圾回收例程清理。当存在阻止正常垃圾收集的特殊情况时,这种类型的引用通常用于帮助消除内存泄漏使用循环引用或在缓存或特殊结构中保存无关信...
弱引用是对内存中的对象的引用,该对象由于与对象的关联而不会阻止该对象被垃圾回收例程清理。当存在阻止正常垃圾收集的特殊情况时,这种类型的引用通常用于帮助消除内存泄漏使用循环引用或在缓存或特殊结构中保存无关信息的程序设计算法可以使用弱引用,在这种情况下使用弱引用可以清除未使用的引用对象及其相关的弱引用。计算机中的人控制计算机编程时,通常在创建对象时默认创建强引用,只要强引用仍然有效,该对象所占用的内存将保持分配状态。强引用将变为空,并且其相关对象的内存在强引用后不久被释放,并且其对象被标记为否在某些情况下,如套接字编程或图像处理应用程序,用于创建工作对象的类没有内置的存储特定应用程序所需的附加信息的能力。临时对象(如连接或图片)的附加详细信息需要存储在补充缓存对象中,并通过引用链接到临时对象。当使用引用而不是强引用,额外的信息不受引用绑定,一旦被引用对象标记为不可行,垃圾回收器可能会从缓存中删除弱引用类。弱引用类通常在由垃圾收集子系统(包括Java)扩充的语言中可用,Python、Perl、C#和.NET framework然而,在C语言中,程序员通常负责确保内存清理。这种语言实现了一个智能指针类,它提供了一些弱引用和垃圾回收提供的相同功能,有助于减少指针清理不当导致的内存泄漏。为了进一步方便内存管理,具有垃圾收集功能的语言还可以通过提供比强引用或弱引用更精细的引用渐变来增强语言的功能。这些语言中可能包含软引用和幻象引用等数据类型,从而允许不同级别的对象重新捕获或释放使用自动垃圾收集语言的程序员应该熟悉所有可用的引用类,以提高应用程序的性能
-
发表于 2020-08-06 11:18
- 阅读 ( 834 )
- 分类:电脑网络