一般來講,可以通過類方法或實例方法的調用來獲得對象引用。
正如在上一個示例所暗示的,只有在這些對象引用內存中同一個對象時,它們才是相同的
但是,如果應用程序沒有正確地持有對象引用,則仍然有可能會泄露,因為垃圾收集器將不會收集仍然被引用的對象。
如果需要在模板中控制特定對象引用的可見*和可用*,這樣做非常有用。
在這個示例中,這意味着要從創建於服務器上的文件中獲取一個對象引用。
在這個示例中,我們將使用所有方法中最直截了當的一種 — 將對象引用寫入一個文件,該文件將由客户機選取。
如果要檢索的對象(無論是通過QBE或原生查詢)擁有大量對象引用,而每個被引用的對象也有着大量的對象引用,以此類推。
此外,一個結點可以引用另一個結點,與在一張數據庫表中一個對象引用了另一個對象、一行或是引用了另一張數據庫表中的一行類似。
顧名思義,匿名塊沒有名稱,因此不能從其他對象引用它們。
用一個普通的(強)引用拷貝一個對象引用時,限制referent的生命週期至少與被拷貝的引用的生命週期一樣長。
例如,Python不能pickle文件對象(或者任何帶有對文件對象引用的對象),因為Python在unpickle時不能保*它可以重建該文件的狀態(另一個示例比較難懂,在這類文章中不值得提出來)。
此外,對於對象引用的數據成員,引用的對象必須是有效不可變的。
對象引用視圖和對象細節視圖也為十個泄漏最嚴重的對象高亮度計數,這有助於手動分析。
這有助於識別導致內存泄漏的潛在無意對象引用。
因為類型化表包含其他對象引用的對象,所以每個類型化表都必須像它的第一列那樣擁有一個對象標識符。
在數據庫提交時,會有一些小型(8K)的內存頁被同步到數據庫中,而因為應用程序使用的是對象引用,內存頁面可能會從持久化存儲中錯誤地換入。由於一般來説對象都會聚集在同一個內存頁中,在頁面被換入的時候很少會有分頁動作的發生。
如果恢復的任何對象引用另一個模式中的對象,而被引用的對象在目標數據庫中不存在,那麼這個過程將失敗。
但是這也帶來一個問題——如果更老一代中的對象引用一個不能通過從根開始的所有其他引用鏈到達的更年輕的對象該怎麼辦?
同樣的技術可以用來提供具有被管理對象引用的中介,例如數據源可以用來通過其它數據來增加消息。
這個對象引用可以傳送給客户機,或者可以從命名服務中檢索到這個引用。
在配置文件中定義方法調用的能力是很重要的,不應該將這種能力限制於返回對象引用的方法。
例如,您擁有一個表示三明治製造機的對象,該對象引用了另一個對象:三明治裝填機。
需要使用服務器上的服務的任何客户機都能夠與命名服務聯繫,使用文本名稱查找服務器來獲得遠程對象引用。
這些對象引用多維數據集模型中使用的事實、維、層次結構和級對象,它們與多維數據集模型中的這些對象是相似的。
點運算符不能訪問對象引用上的非靜態數據字段
同樣,您可以看到一個對象引用另一個對象(它僅包含我正在查找的對象的一個向量)的編程方式的模式。
在純垃圾收集系統中,循環引用問題不大:若涉及到的兩個對象中的一個對象被任何其他對象引用,那麼這兩個對象都將被垃圾收集。
然而,並非所有方法都返回對象引用。