weak簡單來說是乙個雜湊表,key為修飾物件的位址,value為指向該位址的指標陣列。
weak是由runtime初始化並維護的乙個weak表。
在runtime的原始碼中由乙個objc_weak檔案中進行定義了weak表的結構體及相關的方法。
其中結構體中定義可乙個table_weak_t的乙個weak的全域性引用表,使用被修飾的物件的位址作為key,使用指向該位址的指標物件的陣列作為key。
weak為什麼會是弱引用?
weak修飾的物件不會增加該物件的引用計數,在被修飾物件被釋放時會自動將指標置為nil,使其不會出現記憶體洩漏等問題。
weak自動置為nil的原理!
首先根據物件的位址獲取所有weak指標的位址的陣列,遍歷陣列將其中的資料設為nil。將weak表中該記錄刪除
Tomcat設計原理個人學習理解
在看how tomcat works,收穫頗深,結合最近看的 和個人理解寫些個人心得 1 tomcat對每個request的管理 在org.apache.catalina.connector.http包下,有個httpconnector聯結器類。它的工作過程是,先開啟socketserver埠,設定...
機器學習原理個人總結
1 用自己的話說明機器學習的四大分類 classification 分類 clustering 聚類 regression 回歸 dimensionality reduction 降維 1 回歸是對已有的資料樣本點進行擬合,再根據擬合出來的函式,對未來進行 商品 走勢的 就是回歸任務。2 分類需要先...
Lucene原理個人總結
傳統資料庫無法滿足的痛點 在mysql中,我們根據關鍵字去搜尋一般都是like 但是這樣搜尋的效能是很低的,因為沒有走索引。相關性搜尋,電商 中的根據瀏覽記錄做的商品推薦,在海量資料下直接查詢資料庫也是無法做到快速反應 倒排索引 類似這樣的資料結構,它是把值作為索引,比如說搜尋 我 的時候,在字典樹...