原创 數據結構與算法(四)鏈表(四)- 單鏈表原地反轉

public class ReverseLinkedList { @Test public void test() { System.out.println("======================

原创 數據結構與算法(四)鏈表(三)- 雙向鏈表

public class DoublyLinkedList { @Test public void test() { Log.e("DoublyLinkedList", "0000000000000000

原创 數據結構與算法(四)鏈表(一)-單鏈表實現

1.單鏈表的增、刪、遍歷 public class Test { @org.junit.Test public void test() { //測試代碼 System.

原创 Java反射機制詳解

概要: Java反射機制詳解 | |目錄 1反射機制是什麼2反射機制能做什麼3反射機制的相關API·通過一個對象獲得完整的包名和類名·實例化Class類對象·獲取一個對象的父類與實現的接口·獲取某個類中的全部構造函數 - 詳見

原创 如何正確地寫出單例模式

單例模式算是設計模式中最容易理解,也是最容易手寫代碼的模式了吧。但是其中的坑卻不少,所以也常作爲面試題來考。本文主要對幾種單例寫法的整理,並分析其優缺點。很多都是一些老生常談的問題,但如果你不知道如何創建一個線程安全的單例,不知道什麼是

原创 DVM和JVM(Dalvik VM和Java VM)的區別

Dalvik虛擬機是Google等廠商合作開發的Android移動設備平臺的核心組成部分之一。它可以支持已轉換爲.dex(即Dalvik Executable)格式的Java應用程序的運行,.dex格式是專爲Dalvik設計的一種壓縮

原创 可能是東半球最好的dagger2文章

部分內容參考自: [Android]使用Dagger 2依賴注入 - DI介紹(翻譯) [Android]使用Dagger 2依賴注入 - API(翻譯) 爲什麼網上這麼多dagger2教程,我還寫了這篇文章。 找了很多Dagg

原创 多個AsyncTask執行順序:並行or串行

AsyncTask作爲一個優秀的封裝,很多人都在用,可是我估計很多人並不清楚多個AsyncTask對象到底是串行執行的,還是並行執行的,如果是並行的,那麼最多同時執行幾個異步任務呢? 源碼面前無祕密,我們看一下源代碼就知道了。 這裏以An

原创 【github】常用Github項目類庫

http://blog.csdn.net/jabony/article/details/39320759 以下是小海收集的常用Github上比較優秀的項目,希望對大家日常開發有所幫助。 在此感謝小海做出的貢獻!!! Type L

原创 關於ButterKnife等框架註解的思考

        ButterKnife、Dagger2等基於註解的框架到底會不會導致程序性能的降低,是我在實現了一個基於反射的註解來實現findviewbyid功能後,引發的思考。在查詢了一些資料以後,目前結論是:反射確實會導致程序性能的

原创 Android使用微信H5支付

有一種奇特的需求叫做,在app上使用h5支付。這個實際上是有優勢的,比如有多個app要做微信支付,只要h5做一套就可以全部通用。網上搜了一圈,講的有很多,但是都不太細緻,有些坑沒有說。下面是我的實現: public class WebV

原创 使用Dagger2前你必須瞭解的一些設計原則

可能很多人並不知道Dagger2是什麼,有什麼用,爲什麼這個開源庫會這麼的熱門。 所以,在使用Dagger2之前,我們先要了解一些設計模式,看完之後想必你會喜歡上這個庫。 一、依賴倒置原則 A. 高層次的模塊不應該依賴於低層次的模塊

原创 JNI使用實例:Android Studio使用JNI編譯so庫

        必要環境:NDK ,我的版本是android-ndk-r10         最後結果如圖: 實現過程: 1.新建一個as工程,再新建一個類,聲明native方法,此方法是調用c/c++的,是java層和c/c++的中介

原创 數據結構與算法(二)數組與鏈表編程實踐

1.支持動態擴容的數組 public class DynamicArray { //擴容因子 final float factor = 0.75f; int size = 16;

原创 數據結構與算法(二)數組

隨機訪問 1.數組Array是線性表,用一組連續的內存空間,存儲一組相同數據類型的數據。這個特性決定了隨機訪問的基礎。 2.線性表:數組、隊列、鏈表、棧。非線性表:樹、圖、堆 3.一維數組尋址公式:a[i]_adress = base_a