原创 挖掘算法中的數據結構(四):堆排序之 二叉堆(Heapify、原地堆排序優化)

不同於前面幾篇O(n^2)或O(n*logn)排序算法,此篇文章將講解另一個排序算法——堆排序,也是此係列的第一個數據結構—–堆,需要注意的是在堆結構中排序是次要的,重要的是堆結構及衍生出來的數據結構問題,排序只是堆應用之一。 此

原创 優雅設計封裝基於Okhttp3的網絡框架(六):HttpHeader接口設計實現 及 Response、Request封裝實現

到目前爲止,多線程下載功能設計、編寫、優化工作已經完成,但是網絡框架編寫工作並沒有完成,此篇將完成Http核心架構,編寫的新功能還是圍繞在http請求上,涉及到的知識點: httpHeader的接口定義和實現 http請求頭和響

原创 優雅設計封裝基於Okhttp3的網絡框架(四):多線程下載添加數據庫支持(greenDao)及 進度更新

通過前三篇博文的學習,已經編碼實現多線程下載功能的核心代碼,通過多個線程之間的管理和調度來處理下載任務,最後再引入隊列機制來完善功能。此篇博文主旨需要將下載的進度存儲到數據庫中,目的是爲了可以在恢復時可以取出進程下載進度,從未下載

原创 Java高級知識點:並行計算(外部排序) 及 死鎖分析

一. 並行計算(外部排序) 通常單機運算時將數據放入內存中進行計算,但隨着數據量的增大,最好是使用並行計算的方法。 1. 如何設計並行排序算法? 在並行計算的工作中,將每一個參與的電腦當作一個節點,節點通常是比較廉價的,可通過增加

原创 挖掘算法中的數據結構(五):排序算法總結 和 索引堆及優化(堆結構)

前四篇博文介紹的O(n^2)或O(n*logn)排序算法及堆排序結束,意味着有關排序算法已講解完畢,此篇博文將對這些排序算法進行比較總結,並且學習另一個經典的堆結構,處於二叉堆優化之上的索引堆,最後拓展瞭解由堆衍生的一些問題。 此

原创 Java筆記一問三不知------泛型的祕密

(還沒有前言提要,後期補上:) 泛型的創建和實例化 1.常見創建使用 (1)創建一個泛型類 public class Wrapper<T> { private T instance; public T getI

原创 走進RecyclerView未解之迷 ------ 原理和優化

(前言暫位符號) View holder究竟是什麼? Problem View holder 和 item view 是什麼關係? 一對一?一對多?多對一? View holder 解決的是什麼問題? View holder

原创 Gradle再回首之重點歸納

回顧 Android應用的構建過程是一個複雜的過程,涉及到很多工具。首先所有的資源文件都會被編譯,並且在一個R文件中引用,然後Java代碼被編譯,通過dex工具轉換成dalvik字節碼。最後這些文件都會被打包成一個APK文件,此應