原创 Effective Java之改寫equals時總要改寫hashCode

改寫equals時總要改寫hashCode hashCode,就是哈希值,可以理解爲一個對象的標識(好的hash,能確保不同的對象有不同的hash值),Object含有hashCode方法,用來返回對象的hash值。hashCod

原创 Android 使用NDK編譯二進制文件並運行

Android 使用NDK編譯二進制文件並運行 本文介紹如何編譯可以在Android平臺上運行的二進制可執行文件。 首先我們,知道,Android是基於Linux的,而在Linux上,可以執行二進制文件,那麼如何在Android

原创 Android 屏幕點擊手勢判斷

近期在做一個項目,其中涉及到屏幕點擊事件的手勢判斷,比如是單擊還是雙擊,是左滑還是上滑等。 要獲取到屏幕的點擊事件並不難,只需要重載Acivity的onTouchevent(MotionEvent ev)方法,或者dispatchTou

原创 Android permission 動態申請、授權

Android permission 新特性深度學習 本篇文章介紹android permission系統,並介紹android 6.0 permission的新特性,包括權限動態申請和授權等。 permission syste

原创 Java私有構造函數的使用

本篇文章介紹下Java,私有構造函數的使用。 Java私有構造函數的使用 當我們學習Java的時候,我們接觸到的構造函數的權限修飾符都是public,比如, public class Test { public Test(

原创 Java 虛擬調用(virtual invoke)分析

此文章來分析下,Java 的虛擬調用。 When we say Java language has virtual method calling we mean that in java applications the exe

原创 Effective Java筆記之改寫equals的通用約定

改寫equals的通用約定 我們知道,在java的世界裏,所有的類都是Object的派生類,其實Java設計Object的緣由就是爲了擴展,它的所有非fina方法,包括equals、hashCode、toString和finali

原创 Java 設計模式之單例模式詳解

本文學習一個Java單例模式。 單例模式 單例,顧名思義,就是隻存在一個實例。或許,你也會疑問?爲什麼會使用到單例模式呢?這是因爲,很多情況下,我們需要一個實例,比如線程池、緩存、驅動等,如果存在多個實例,那將會導致混亂。 首先我

原创 Java 多態 後鏈接(late binding)與前鏈接(early binding) 向上轉型(upcast)

使用過面向對象編程(OPP)的都知道,多態是OPP的一個主要特性之一。Java做爲一種OPP語言,其也有多態特性。 那麼什麼是多態呢? 多態 指允許不同類的對象對同一消息做出響應。即同一消息可以根據發送對象的不同而採用多種不同的

原创 Android Callable Future FutureTask學習

在上篇Android 線程與線程池 Thread&ThreadPool,我們介紹了線程Thread及線程池的使用。我們知道,當線程執行完畢的時候,該線程會自動銷燬。但是,其卻不會通知任務的執行者。比如,我們新建一個線程執行任務,當

原创 Android 動態加載之DexClassLoader

Android提供動態加載機制,允許從SD卡中加載dex格式的文件,其中,DexClassLoader類起了關鍵作用。 首先看下Android Developer關於DexClassLoader的介紹,     A class lo

原创 Java HashMap學習

做過Java或者Android開發的肯定使用過HashMap。最基本的就是HashMap維護了一個key, value表,可以實現數據的快速存儲和讀取。本篇文章就來揭開HashMap的面紗,從其源碼來回答如下問題, 1. Has

原创 Android MVP 學習

Android MVP 學習 我們都聽說過MVC,但是MVP是什麼鬼呢? MVP概念 M對應Model,V對應View,P對應Presenter。 MVP 是從經典的模式MVC演變而來,它們的基本思想有相通的地方:Controll

原创 Android startservice & bindservice的區別

Android startservice & bindservice的區別 作爲一個android開發者,service大家應該已經接觸過了,接觸Android的第一節課,就是將Android的四大組件,那麼作爲四大組件之一的se

原创 Effective Java之總是要改寫toString

Object的toString方法 雖然Object提供了toString方法的一個實現,但是,它返回的內容並不是類的用戶所期待的,比如,我們定義類, public class Point { private int x;