原创 OkHttp深入理解(4)ConnectInterceptor

CacheInterceptor中如果沒能成功使用緩存,接下來就要準備向服務器發起請求。所以接下來的攔截器就是ConnectInterceptor。ConnectInterceptor的主要職責是負責與服務器建立起連接。 ConnectI

原创 Java併發編程學習筆記(1)基本概念

線程的生命週期狀態 NEW:一個已創建而未啓動的線程出於該狀態。 RUNNABLE:該狀態可以被看成一個複合狀態,包含兩個子狀態:READY和RUNNING。前者表示線程可以被線程調度器(Scheduler)進行調度而使之處於RUNNI

原创 Java併發編程學習筆記(2)硬件基礎

概述 這篇筆記記錄了多線程編程中的硬件基礎。從處理器的存儲系統出發,在硬件層面解釋了多線程編程中的可見性、有序性問題產生的原因及解決方案中的硬件支持。 高速緩存 引入高速緩存的原因 現代處理器處理能力要遠遠勝於主內存的訪問速率。爲了彌補

原创 MVC與MVP對比

MVC模式 MVC的全稱是Model-View-Controller,模型-視圖-控制器。MVC是一種框架模式而非設計模式。GOF把MVC看作是三種設計模式——觀察者模式、策略模式與組合模式的合體,核心是觀察者模式,也就是一個基於發佈/訂

原创 View的工作流程

概述        View的繪製流程是從ViewRoot的performTraversals開始的,經過measure、layout和draw三個過程才能最終將一個View繪製出來。 MeasureSpec            

原创 責任鏈模式

概述     責任鏈模式(Chain of Responsibility),是行爲型設計模式之一。在編程中,將每一個節點看做是一個對象,每一個對象擁有不同的處理邏輯,將一個請求從鏈式的首端發出,沿着鏈的路徑一次傳遞給每一節點對象,直到有對

原创 OkHttp深入理解(3)BridgeInterceptor與CacheInterceptor

上一篇筆記主要記錄了RetryAndFollowUpInterceptor的功能,主要負責根據response決定是否對請求進行重定向。這篇筆記記錄鏈中的下兩個結點BridgeInterceptor與CacheInterceptor。

原创 觀察者模式與Fragment間通信

     前幾天面試,面試官提到一個問題,fragment間怎樣實現通信。我回答通過Activity做中介。面試官要求用低耦合的方式,一時沒想起。後來上網找了一下發現可以通過觀察者模式來實現。雖然也是通過Activity做中介,但是不是直

原创 OkHttp深入理解(1)綜述

      用OkHttp這麼久,一直只知道基本用法, 沒有去深入探究,以至於遇到一些需求的時候不知道該如何實現,在網絡請求部分中寫了許多冗餘代碼,對於有代碼潔癖的我來說簡直太痛苦了。現在查閱了許多資料,也慢慢看了一些源碼,總算有了粗略的

原创 Activity啓動過程

概述 Activty是四大組件之首,重要性不言而喻。這篇筆記整理於寒假實習期間,大致總結Activity的啓動流程,由於整個啓動過程實在太繞,調用鏈太長,暫時沒有完整分析一遍,空缺的看需要再補充。分析過程以API-26爲基礎。 幾個基礎對

原创 進程同步與互斥

同步與互斥的概念      ①、間接相互制約關係(互斥):若某一進程要求使用某種資源,而該資源正被另一進程使用,並且該資源不允許兩個進程同時使用,那麼該進程只好等待已佔有資源的進程釋放資源後再使用。這種制約關係的基本形式是“進程-資源-

原创 OkHttp深入理解(2)RetryAndFollowUpInterceptor

OkHttp的精髓之一就在於Interceptor。其內部已經爲我們定製了五個Interceptor——RetryAndFollowUpInterceptor、BridgeInterceptor、CacheInterceptor、Con

原创 HashTable/HashMap/ConcurrentHashMap

概述:      Hashtable 是散列表,存儲的是鍵值對(key-value)的映射。Hashtable 繼承與Dictionary,實現了Map、Cloneable、Serializable接口。它是線程安全的。Hashtabl