弱引用是對內存中的對象的引用,該對象由于與對象的關聯而不會阻止該對象被垃圾回收例程清理。當存在阻止正常垃圾收集的特殊情況時,這種類型的引用通常用于幫助消除內存泄漏使用循環引用或在緩存或特殊結構中保存無關信...
弱引用是對內存中的對象的引用,該對象由于與對象的關聯而不會阻止該對象被垃圾回收例程清理。當存在阻止正常垃圾收集的特殊情況時,這種類型的引用通常用于幫助消除內存泄漏使用循環引用或在緩存或特殊結構中保存無關信息的程序設計算法可以使用弱引用,在這種情況下使用弱引用可以清除未使用的引用對象及其相關的弱引用。計算機中的人控制計算機編程時,通常在創建對象時默認創建強引用,只要強引用仍然有效,該對象所占用的內存將保持分配狀態。強引用將變為空,并且其相關對象的內存在強引用后不久被釋放,并且其對象被標記為否在某些情況下,如套接字編程或圖像處理應用程序,用于創建工作對象的類沒有內置的存儲特定應用程序所需的附加信息的能力。臨時對象(如連接或圖片)的附加詳細信息需要存儲在補充緩存對象中,并通過引用鏈接到臨時對象。當使用引用而不是強引用,額外的信息不受引用綁定,一旦被引用對象標記為不可行,垃圾回收器可能會從緩存中刪除弱引用類。弱引用類通常在由垃圾收集子系統(包括Java)擴充的語言中可用,Python、Perl、C#和.NET framework然而,在C語言中,程序員通常負責確保內存清理。這種語言實現了一個智能指針類,它提供了一些弱引用和垃圾回收提供的相同功能,有助于減少指針清理不當導致的內存泄漏。為了進一步方便內存管理,具有垃圾收集功能的語言還可以通過提供比強引用或弱引用更精細的引用漸變來增強語言的功能。這些語言中可能包含軟引用和幻象引用等數據類型,從而允許不同級別的對象重新捕獲或釋放使用自動垃圾收集語言的程序員應該熟悉所有可用的引用類,以提高應用程序的性能
-
發表于 2020-08-06 11:18
- 閱讀 ( 749 )
- 分類:電腦網絡