原创 說說Android LRU緩存算法實現筆記(二)--LRU的應用

上一篇文章說說Android LRU緩存算法實現學習筆記(一) 中我們介紹了最常用的實現LRU緩存的數據結構LinkedHashMap,這一節我們會針對LinkedHashMap的數據結構的特性,來自己實現緩存結構和學習Android源

原创 數據結構與算法-LeetCode練習二分查找應用

LeetCode 153. Find Minimum in Rotated Sorted Array 查找循環排序數組的最小元素(循環排序數組可以理解,一個環狀數組(0,1,2,4,5,6,7),從其中一個元素斷開後4,5,6,7,0,

原创 說說Android LRU緩存算法實現學習筆記(一)

在我們的手機應用開發時候,我們經常會遇到大數據訪問的時候,我們通常會考慮以下幾個方面的情況。一、手機內存的限制還必須保證應用反應的流暢;二、儘量小的流量消耗,不然,你的應用流暢度再好體驗再好,用戶還是會毫不猶豫的卸載掉你的應用。大數據量訪

原创 Java泛型學習筆記--Java泛型和C#泛型比較學習(一)

  總結Java的泛型前,先簡單的介紹下C#的泛型,通過對比,比較學習Java泛型的目的和設計意圖。C#泛型是C#語言2.0和通用語言運行時(CLR)同時支持的一個特性(這一點是導致C#泛型和Java泛型區別的最大原因,後面會介紹)。C#

原创 說說View的繪製流程(一)

在我們的Android項目開發過程中,相信大家肯定會涉及到對View流程繪製的相關開發(比如:自定義控件)。本文試着從源碼(Android 10,我們之所以選擇API 10源碼,是爲了儘量減少一些主題無關的複雜性,便於理解和閱讀)角度,,

原创 Java多線程學習筆記—線程停止

在我們平時實際開發中我們不可避免會使用到多線程,停止運行中的線程是不可避免的會在我們的項目中遇見過。關於線程的停止,我所知道的分兩種情況來處理: 1.  一種停止處於運行態的多線程; 2.一種停止可處於阻塞狀態的多線程。 首先,在運行狀態

原创 Android事件分發機制學習筆記

關於Android的事件分發機制,一直想系統的整理下思路寫下來。剛好最近在看github上封裝的仿QQ的列表的滑動效果的項目(SwipeListView)源碼,作者對嵌套的佈局滑動事件進行處理來區別上下滑動和左右滑動針對不同控件的響應。

原创 Android事件分發學習應用-圖片輪播實現

前一篇寫到Android事件分發機制學習筆記,下面我們通過一個實例的應用來實踐理解下Android事件分發的機制。我們這裏來實現一個圖片的輪播功能,最後順便實現下圖片的自動輪播。 我們的圖片輪播是封裝在一個ViewGroup裏,當我們進行

原创 Android 實現圖片緩存異步加載框架學習筆記

最近想把Android異步加載實現原理的理解整理下,學習了郭林大神的關於內存緩存和硬盤緩存的系列博客,自己也想寫寫自己看完博客後的收穫。先推薦郭大神的這篇博客Android照片牆完整版,完美結合LruCache和DiskLruCache,

原创 Java多線程學習筆記--生產消費者模式

實際開發中,我們經常會接觸到生產消費者模型,如:Android的Looper相應handler處理UI操作,Socket通信的響應過程、數據緩衝區在文件讀寫應用等。強大的模型框架,鑑於本人水平有限目前水平只能膜拜,本次只能算學習筆記,爲

原创 求兩個數組的交集和並集

晚上閒來無事,想起前兩天查資料時候,看到別人一篇博客標題關於數組的交集和並集,晚上也隨便寫寫,權當督促自己堅持經常練習練習寫寫小Demo。如下,先來一段求有序數組的交集的代碼,代碼如下: public static List<Integ

原创 Java多線程學習筆記—從Map開始說說同步和併發

在Java的關於Map集合中,我們經常會比較Hashtable和HashMap的區別。其中一點是區別關於線程安全,我們知道Hashtable是線程安全的,HashMap是非線程安全的。本文從Hashtable開始討論說起關於Map的線程安

原创 Java多線程學習筆記——從Java JVM對多線程數據同步的一些理解

    我們知道在多線程編程中,我們很大的一部分內容是爲了解決線程間的資源同步問題和線程間共同協作解決問題。線程間的同步,通俗我們理解爲僧多粥少,在粥有限情況下,我們怎麼去防止大家有秩序的喝到粥,不至於哄搶都沒得喝。線程講協作,我們可以理