原创 ARouter——原理分析整理

文章目錄單向依賴的module互不依賴的moduleARouter概述apt & javapoet路由映射文件生成原理定義註解使用註解註解處理器使用javapoet生成java類路由跳轉 單向依賴的module 組件化中兩個單向依

原创 Glide——緩存分析整理

文章目錄LruCache概述原理DiskLruCache概述Glide緩存概述資源分類緩存設計Glide 緩存源碼分析1、生成key2、創建緩存對象LruResourceCache3、獲取內存緩存中的圖片4、開啓加載圖片線程5、獲

原创 HashMap常見問題整理

文章目錄一、HashMap實現原理你看過HashMap源碼嘛,知道原理嘛?爲什麼用數組+鏈表?hash衝突你還知道哪些解決辦法?我用LinkedList代替數組結構可以麼?既然是可以的,爲什麼HashMap不用LinkedList

原创 Java集合常見問題整理

文章目錄說說常見的集合有哪些吧?List、Set、Map三者的區別ArrayList和LinkedList的區別RandomAccess接口ArrayList 與 Vector 區別ArrayList擴容機制HashMap 和 H

原创 ArrayList源碼分析整理

文章目錄概述屬性構造方法add系列remove系列set系列get系列clear方法indexOf 方法lastIndexOf方法fail-fast事件總結 概述 ArrayList繼承於AbstractList,並實現了Seri

原创 Java虛擬機學習筆記(五)

文章目錄類加載器類加載器總結雙親委派模型雙親委派模型實現源碼分析雙親委派模型的好處自定義類加載器補充:Android中的ClassLoaderAndroid中的dexBaseDexClassLoader 及其子類PathClass

原创 設計模式——行爲型模式

文章目錄設計模式——行爲型模式策略模式簡單實現使用場景和優缺點觀察者模式簡單實現使用場景及優缺點責任鏈模式簡單實現 設計模式——行爲型模式 策略模式 當我們寫代碼時總會遇到一種情況,就是我們會有很多的選擇,由此衍生出很多的if…e

原创 LinkedList源碼分析整理

文章目錄概述基本數據增刪改單向隊列、雙向隊列、棧總結 概述 LinkedList是List的另一種實現,他的底層是基於雙向鏈表實現的,因此它具有插入刪除快,查詢慢的特點,此外,對雙向鏈表操作還可以實現隊列和棧的功能。 基本數據

原创 Android——自定義View

文章目錄Android之自定義View繼承特定View控件繼承View處理padding處理wrap_content屬性自定義屬性View滑動衝突常見的滑動衝突處理規則 Android之自定義View 繼承特定View控件 這種自

原创 HashMap源碼分析整理

文章目錄基本數據put方法resize擴容get方法remove方法 基本數據 JDK8的HashMap在內部實現上使用數組+鏈表+紅黑樹三種數據結構。 對於hash衝突,HashMap的解決是使用鏈地址法,將hash相同的記錄

原创 Android——View的工作流程

文章目錄View的工作流程View的工作流程入口DecorView被加載到Window中MeasureSpecView的measure流程View的measure流程ViewGroup的measure流程View的layout流程

原创 Java——鎖相關整理

文章目錄悲觀鎖與樂觀鎖樂觀鎖常見的兩種實現方式版本號機制CAS自旋鎖synchronized對於synchronized 關鍵字的瞭解synchronized的使用synchronized底層原理通過代碼塊修飾方法synchron

原创 設計模式——創建型模式

文章目錄設計模式——創建型模式單例模式實現一:餓漢模式實現二:懶漢模式(線程不安全)實現三:懶漢模式(線程安全)實現四:雙重檢查模式(DCL)實現五:靜態內部單例模式實現六:枚舉單例實現七:容器實現使用場景簡單工廠模式簡單實現使用

原创 LeakCanary原理分析整理

文章目錄Reference概述ReferenceReferenceQueueLeakCanary原理檢測泄漏的步驟LeakCanary源碼第一步——監聽第二步——檢測泄漏(核心)第三步——泄漏分析 Reference概述 Refe

原创 Java虛擬機學習筆記(四)

文章目錄類加載過程概述加載連接驗證準備解析初始化 類加載過程 概述 Class 文件需要加載到虛擬機中之後才能運行和使用,那麼虛擬機是如何加載這些 Class 文件呢? 系統加載 Class 類型的文件主要三步:加載 => 連接