原创 Gradle構建之Gradle構建基礎

前言 Gradle是一個專注於構建自動化和支持多語言開發的構建工具。如果你在任何平臺上構建、測試、發佈和部署軟件,Gradle提供了一個靈活的模型,可以支持從編譯和打包代碼到發佈web站點的整個開發週期。Gradle被設計成支持跨

原创 Gradle構建之自定義Gradle插件

前言 Gradle是一個專注於構建自動化和支持多語言開發的構建工具。使用Gradle構建工具,我們可以方便又快速地實現自己的構建目標。Gradle所有有用的特性都是由插件提供的。一個Gradle插件打包了可重用的構建邏輯,可以在不

原创 Android的消息機制源碼分析

前言 Android系統不能在子線程中更新UI界面,因爲Android的UI控件不是線程安全的。這種情況下我們可以在UI線程中創建一個Handler,子線程通過這個Handler發送Message到UI線程,通知UI線程更新UI界

原创 Gradle構建之Groovy語言基礎

前言 Gradle的構建腳本是採用Groovy語言編寫的。Groovy是Java平臺上設計的一種強大的、可選類型和動態的語言。Groovy可以無縫地集成任何Java程序,並立即讓你的應用程序擁有強大的特性,包括腳本功能、DSL、運

原创 MVVM模式開源學習項目——玩Android客戶端

項目地址 https://github.com/chongyucaiyan/WanAndroid-Java 項目簡介 一款基於玩Android開放API開發的玩Android客戶端。整個項目採用MVVM + Retrofit +

原创 排序算法之歸併排序

相關知識 冒泡排序 快速排序 直接插入排序 希爾排序 直接選擇排序 堆排序 歸併排序 基本思想 基本思想:分治法,合併 代碼實現 實現1: public static void mergeSort(int[] array, int

原创 排序算法之快速排序

相關知識 冒泡排序 快速排序 直接插入排序 希爾排序 直接選擇排序 堆排序 歸併排序 基本思想 基本思想:挖坑填數,分治法 代碼實現 public static void quickSort(int[] array, int fi

原创 排序算法總結

排序算法總結 冒泡排序 基本思想:比較,交換 時間複雜度:O(N^2) 空間複雜度:O(1) 算法穩定性:穩定 快速排序 基本思想:挖坑填數,分治法 時間複雜度:O(NlogN) 空間複雜度:O(1) 算法穩定性:不穩定

原创 排序算法之冒泡排序

相關知識 冒泡排序 快速排序 直接插入排序 希爾排序 直接選擇排序 堆排序 歸併排序 基本思想 基本思想:比較,交換 代碼實現 實現1: public static void bubbleSort(int[] array) {

原创 排序算法之直接插入排序

相關知識 冒泡排序 快速排序 直接插入排序 希爾排序 直接選擇排序 堆排序 歸併排序 基本思想 基本思想:把無序區的第一個元素按順序插入到有序區中 代碼實現 實現1:交換 public static void insertionS

原创 排序算法之希爾排序

相關知識 冒泡排序 快速排序 直接插入排序 希爾排序 直接選擇排序 堆排序 歸併排序 基本思想 基本思想:增量分組,直接插入排序,縮小增量 代碼實現 實現1:交換 public static void shellSort(int[

原创 排序算法之堆排序

相關知識 冒泡排序 快速排序 直接插入排序 希爾排序 直接選擇排序 堆排序 歸併排序 基本思想 基本思想:堆化,堆的刪除 代碼實現 實現1:交換 public static void heapSort(int[] array) {

原创 排序算法之直接選擇排序

相關知識 冒泡排序 快速排序 直接插入排序 希爾排序 直接選擇排序 堆排序 歸併排序 基本思想 基本思想:在無序區中找到最小(最大)的元素放在有序區的末尾 代碼實現 public static void selectionSort

原创 ArrayDeque源碼分析

前言 ArrayDeque類是Deque接口的一種實現,它表示一個雙端隊列。Deque接口除了提供操作雙端隊列的一系列方法之外,還提供了操作棧的方法,因此ArrayDeque也可以表示一個棧。LinkedList類也是Deque接口的

原创 LinkedList源碼分析

前言 LinkedList類是List接口的一種實現,它表示一個列表。同時,LinkedList類也是Deque接口的一種實現,所以它也可以表示一個雙端隊列。Deque接口除了提供操作雙端隊列的一系列方法之外,還提供了操作棧的方法,因