原创 Handler機制源碼學習

本文主要講的是Android的Handler消息機制。提到Handler我們應該都不會陌生,平常在開發中免不了要和Handler打交道,那Handler到底是怎樣工作的呢,那我們來簡單的梳理一下。 話不多說先放一張圖: 從上圖可以看出H

原创 併發編程線程基礎(一)

併發編程線程基礎(一) 1.1 什麼是線程 這種老生常談的問題在這裏簡單說一下啊,線程是操作系統調度的最小單元,也叫作輕量級進程。 在一個進程中可以創建多個線程 ,這些線程都應有各自的計數器、堆棧和局部變量等屬性,並且都能夠訪問共享的

原创 迭代器模式

迭代器模式 迭代器模式又稱爲遊標模式,是行爲型設計模式之一。迭代器模式算是一個比較古老的設計模式,其源於 對容器的訪問,比如List、Map、數組等,我們知道對容器的訪問必然會涉及到遍歷算法,我們可以將 遍歷的方法封裝在容器中,或者不提供

原创 抽象工廠模式

工廠模式(二) 抽象工廠模式 定義 爲創建一組相關或者是相互依賴的對象提供一個接口。而不需要指定他們的具體類。 抽象工廠模式的類繁多分爲4類: (1)抽象工廠角色 他聲明瞭一組用於創建一種產品的方法,每一個方法對應一種產品。 (2)

原创 狀態模式

隨遇而安–狀態模式 定義 當一個對象的內在狀態改變時允許改變其行爲,這個對象看起來是改變了其類。 使用場景 (1)一個對象的行爲取決於它的狀態,並且他必須在運行時根據狀態改變它的行爲。 (2)代碼中包含大量與對象狀

原创 策略模式

策略模式 的簡單理解 定義 策略模式定義了一系列算法並將每個算法封裝起來,而且使它們還可以相互替換。策略模式 讓算法獨立於使用它的客戶而獨立變化。 策略模式的使用場景: (1)針對同一類型問題的多種處理方式,僅僅是具體行爲有差別

原创 JVM複習

1、JVM啓動流程 2 、JVM基本結構 PC寄存器 – 每個線程擁有一個PC寄存器 – 在線程創建時 創建 – 指向下一條指令的地址 – 執行本地方法時,PC的值爲undefined 方法區 –

原创 代理模式

代理模式 定義 : 爲其他對象提供一種代理以控制對這個對象的訪問。 代理模式的使用場景 當無法或不想直接訪問某個對象或訪問某個對象存在困難時可以通過一個代理對象來間接訪問,爲了保證 客戶端使用的透明性,委託對象與代理對象需要實現相同的

原创 觀察者模式

# 解決、解耦的鑰匙——觀察者模式 # 定義 定義對象間一種一對多的依賴關係,使得每當一個對象改變狀態,則所有依賴於它的對象都回得到通知並被自動更新。 使用場景 (1)關聯行爲場景,需要注意的是,關聯行爲是可拆分的,而不是“

原创 簡單工廠

工廠方法模式(一) 簡單工廠模式 定義 定義一個用於創建對象的接口,讓子類去決定實例化哪個類。 在任何需要生成複雜對象的地方呢 都可以使用工廠模式。複雜對象適合使用工廠模式,用new 就 可以完成創建的對象無需使用工廠模式。 我們來看

原创 Builder模式簡單理解

Builder 模式 Builder模式 將一個複雜對象的構建與它的表示分離,使得同樣的構建過程可以創建不同的表示。 那麼Builder模式的用場景呢? (1) 相同的方法,不同的執行順序,產生不同的事件結果時。 (2) 多個部件或零件,

原创 ARouter--簡單且好用的Android路由框架

我們開發時使用最多的就是頁面的跳轉,現在使用的方案一般是顯式Intent和隱式intent.顯式Intent由於存在直接類依賴,導致耦合非常嚴重。而隱式Intent,一般都在manifest文件中配置,這種方式可擴展性比較差。而且傳統方式

原创 責任鏈模式

責任鏈模式 定義 使多個對象都有機會處理請求,從而避免了請求的發送者和接收者之間的耦合關係。 將這些對象連城一條鏈傳遞該請求直到有對象處理它爲止。 責任鏈模式的使用場景 對個對象可以處理同一請求,但具體由哪個對象處理則在運行時

原创 安卓中測量控件的高度

我們很多次測量控件高度和寬度都是0 這裏有個方法和大家分享出來 直接上代碼: View view = View.inflate(getApplicationContext(),R.layout.activity_personal_pers

原创 面向對象六大原則

最近在工作中發現自己對設計模式是一知半解,打算認真看一下設計模式相關的書籍,並做一些記錄與大家分享(不要嫌棄我寫的不好,因爲現在的我確實很菜)。 先來看面向對象的六大原則吧 (一) 單一職責原則 (二) 開閉原則 (三) 里氏替換原則