原创 裝飾者模式讀書筆記

裝飾者模式讀書筆記 在平時寫代碼的過程中,大量的繼承會造成繼承濫用的現象,而我們可以使用組合(composition)和委託(delegation)在運行時具有繼承的效果,通過動態的組合對象,可以寫新的代碼添加新的功能,而無需改變現有

原创 觀察者模式讀書筆記

一般觀察者模式用在一對多的關係中,當一個對象發生改變時,依賴這個對象的其他對象就要自動做出改變。 氣象站例子 這個氣象站系統中包含三個部分,氣象站代表獲取實際氣象數據的物理裝置,WeatherData對象可以追蹤來自氣象站的數據,並更

原创 設計模式之策略模式------讀書筆記

前言 在開發一個系統的過程中,我們可能會時不時的問自己,我們這麼設計這塊邏輯到底好不好,如果以後需要擴展這部分會不會很困難。有了這麼多疑問,我們自然而然的就會想到去尋找問題的答案。幸運的是,Head First設計模式這本書爲我們提供

原创 動態代理初探

代理可以看成一種包裝器,通過調用自己的方法來傳遞函數的調用,在傳遞過程中,可能會增加一些新的功能。而動態代理,可以使用一個類的一個方法爲任意一個類提供多個方法的調用,可以看做是任何接口的一個實現。它將所有的方法調用都路由到一個handle

原创 android Dalvik虛擬機

轉載自:https://blog.csdn.net/luoshengyang/article/details/41338251 簡介 在android5.0中,ART運行時取代了Dalvik虛擬機。雖然Dalvik虛擬機不再使用,但是它曾

原创 java類加載機制

類加載機制 jvm類加載機制分爲五個部分:加載,驗證,準備,解析,初始化,下面我們就分別來看一下這個5個過程 加載 加載是類加載過程中的一個階段,這個階段會在內存中生成一個代表這個類的java.lang.Class對象,作爲方法區這個類

原创 查找算法之B樹、B+樹

B樹是爲了磁盤或其他存儲設備而設計的一種多叉平衡查找樹.磁盤中有兩個機械運動的部分,分別是盤片旋轉和磁臂移動。盤片旋轉就是我們市面上所提的多少轉每分鐘,而磁盤移動則是在盤片旋轉到指定位置以後,移動磁臂後開始進行數據的讀寫,那麼這就存在一個

原创 Android消息機制之ThreadLocal的工作原理

轉載自:https://blog.csdn.net/singwhatiwanna/article/details/48350919 從開發的角度來說,Handler是Android消息機制的上層接口,這使得開發過程中只需要和Handle

原创 GC頻繁抖動的主要原因

內存抖動 內存抖動是因爲大量的對象被創建又在短時間內馬上被釋放,如循環中分配對象,很容易引起GC,特別是在較大的循環次數或者一個循環中分配較多的臨時對象時。 瞬間產生大量的對象 瞬間產生大量的對象,即使對象不大,也可能使得堆的可用空間達到

原创 Android ART虛擬機

轉載自:https://blog.csdn.net/luoshengyang/article/details/45017207 Android與ios相比,一直被人詬病它的流暢性。android的流暢性問題,有一部分原因就歸結於它的應用

原创 二叉樹遍歷的遞歸實現

import java.util.ArrayDeque; import java.util.LinkedList; import java.util.Queue; import java.util.Stack; public class

原创 android Binder機制介紹

Binder是android系統進程間通信(IPC)方式之一。Linux已經擁有管道,system V IPC,socket等IPC手段,卻還要依賴Binder來實現進程間通信,說明Binder具有無可比擬的優勢。深入瞭解Binder並將

原创 java對象的生命週期

在java中,對象的生命週期包含以下幾個階段: 1、創建階段(Created) 2、應用階段(In Use) 3、不可見階段(Invisible) 4、不可達階段(Unreachable) 5、收集階段(Collected)

原创 android 進程間通信

在一個android APP中,如果有佔用內存比較大的操作,我們一般使用進程拆分。比如說對於Webview,圖庫等,由於存在內存系統泄露或者佔用內存過多的問題,我們可以採用單獨的進程。不僅如此,我們在一個app中可能會訪問其他app的信息

原创 EventBus--事件總線:觀察者模式的拓展

爲何要使用 android應用開發中,經常會涉及Activity,Fragment,Service等不同組件或者模塊之間的消息傳遞。使用傳統的方法實現,往往代碼不夠優雅,而且不同組件和模塊之間的耦合嚴重。隨着模塊的增多、代碼邏輯的不斷新增