原创 安卓IPC機制之Binder詳解

IPC(Inter-Process Communication,跨進程通信)是指兩個進程之間數據交換的過程,因此我們首先必須瞭解什麼是進程,什麼是線程。 進程:進程是正在運行的程序的實例,與程序相比,它更強調動態的概念,與線程相比,進程是

原创 安卓中的事件分發機制源碼解析

安卓中的事件分發機制主要涉及到兩類控件,一類是容器類控件ViewGroup,如常用的佈局控件,另一類是顯示類控件,即該控件中不能用來容納其它控件,它只能用來顯示一些資源內容,如Button,ImageView等控件。暫且稱前一類控件爲Vi

原创 【java集合框架源碼剖析系列】java源碼剖析之java集合中的折半插入排序算法

注:關於排序算法,博主寫過【數據結構排序算法系列】數據結構八大排序算法,基本上把所有的排序算法都詳細的講解過,而之所以單獨將java集合中的排序算法拿出來講解,是因爲在阿里巴巴內推面試的時候面試官問過我,讓我說說java集合框架中用的哪種

原创 【java集合框架源碼剖析系列】java源碼剖析之TreeMap

注:博主java集合框架源碼剖析系列的源碼全部基於JDK1.8.0版本。本博客將從源碼角度帶領大家學習關於TreeMap的知識。 一TreeMap的定義: public class TreeMap<K,V> extends Ab

原创 【java集合框架源碼剖析系列】java源碼剖析之TreeSet

本博客將從源碼的角度帶領大家學習TreeSet相關的知識。 一TreeSet類的定義: public class TreeSet<E> extends AbstractSet<E> implements NavigableSet

原创 【java虛擬機系列】java虛擬機系列之JVM總述

我們知道java之所以能夠快速崛起一個重要的原因就是其跨平臺性,而跨平臺就是通過java虛擬機來完成的,java虛擬機屬於java底層的知識範疇,即使你不瞭解也不會影響絕大部分人從事的java應用層的開發,但是如果你瞭解JVM的底層知識,

原创 java中hashCode()與equals()詳解

首先之所以會將hashCode()與equals()放到一起是因爲它們具備一個相同的作用:用來比較某個東西。其中hashCode()主要是用在hash表中提高 查找效率,而equals()則相對而言使用更廣泛,用於比較兩個對象的值是否相同

原创 【java虛擬機序列】java中的垃圾回收與內存分配策略

在【java虛擬機系列】java虛擬機系列之JVM總述中我們已經詳細講解過java中的內存模型,瞭解了關於JVM中內存管理的基本知識,接下來本博客將帶領大家瞭解java中的垃圾回收與內存分配策略。 垃圾回收(Garbage Collec

原创 安卓java.lang.IllegalArgumentException: The observer is null.解決方案

剛剛在調試自己的APP項目的時候報錯java.lang.IllegalArgumentException: The observer is null.,而之前是可以運行通過,所以百思不得其解,後來在網上查找相關資料,終於弄明白是咋回事,現

原创 【java集合框架源碼剖析系列】java源碼剖析之ArrayList

注:博主java集合框架源碼剖析系列的源碼全部基於JDK1.8.0版本。 本博客將從源碼角度帶領大家學習關於ArrayList的知識。 一ArrayList類的定義: public class ArrayList<E> extends