原创 Android Universal-Image-Loader 解析

任務流圖 任務流圖中的每一步都有自己的接口(在圖片底部)來負責這部分的任務。大部分接口(除了BitmapProcessor)都擁有默認的實現從左到右依次是BaseImageDowloader、UnlimitedDiscCache

原创 Java異常機制

異常發生的原因 用戶輸入了非法數據。 要打開的文件不存在。 網絡通信時連接中斷,或者JVM內存溢出。 Java異常的類型 檢查性異常:最具代表的檢查性異常是用戶錯誤或問題引起的異常,這是程序員無法預見的。例如要打開一個不存在

原创 內存泄漏原因概覽

1、靜態變量導致內存泄漏 Activity的Context或this被賦值給一個類的靜態變量,因爲靜態變量時類變量,除非該類在虛擬機中被卸載,否則,Activity永遠被強引用,不會被GC掉。 2、屬性動畫導致的內存泄漏 如果動畫

原创 Java虛擬機--內存區域劃分

運行時數據區域 在運行時數據區內,白色部分的是線程私有的:虛擬機棧、本地方法棧、程序計數器 程序計數器:線程私有,可以看做當前線程所執行的字節碼的行號指示器。若線程正在執行一個Java方法,這個計數器記錄正在執行的虛擬機字

原创 一道考察類加載機制的試題

原地址: 一個據說第一次接觸都會做錯的Java面試題和類加載器的介紹 public class Test1 { @SuppressWarnings("static-access") public static v

原创 RecyclerView的使用

與ListView相比,同樣具有item回收複用功能,RecyclerView把ViewHolder的實現封裝了起來,使用時要實現自己的ViewHolder。 首先,跟ListView一樣,要定義一個數據適配器,這裏要繼承Recy

原创 Android武器庫

知名武器倉庫 Android-Arsenal Trinea/android-open-project awesome-android-ui 兵器一覽 知名利器對決 網絡請求哪家強 圖片加載到底哪家強 武器拆解

原创 LinkedList源碼解析

android-sdk/android-23/java/util/LinkedList.java LinkedList實現了List、Deque、Queue接口,說明他可以當做列表、雙端隊列、隊列用 屬性: transien

原创 Java虛擬機--內存模型與線程

0、內存模型 內存模型,可以理解爲特定操作協議下,對指定的內存或高速緩存進行讀寫訪問的過程抽象。C/C++直接使用物理硬件和操作系統的內存模型,會有不同平臺的差異性。 1、Java內存模型 參考書籍:深入理解Java內存模型

原创 Java虛擬機--垃圾回收與內存分配

1、可回收對象的判定 用來判斷哪些對象可以被回收 1)引用計數法 給對象添加一個引用計數器,每當它被一引用時,計數器加1;當引用失效時,計數器減1。計數器爲0,就表示可以回收了。 缺點:難以解決兩個對象之間的循環引用 2)可達性

原创 Android性能優化

1、佈局優化 include佈局 引用已有視圖 merge標籤 合併佈局管理器 ViewStub視圖 延遲加載,在ViewStub調用inflate方法或設置visiable之前,它是不佔用佈局空間和系統資源的,只是一個佔位符。加

原创 ArrayList源碼解析

android-sdk/sources/android-23/java/util/ArrayList.java 屬性: 最小擴容量:12 private static final int MIN_CAPACITY_INCRE

原创 Java虛擬機--線程安全與鎖優化

線程安全 在Java中可以對各種操作共享數據分爲以下5類:不可變、絕對線程安全、相對線程安全、線程兼容、線程對立。 1)不可變 用final修飾的基本變量、行爲不會對自己的狀態產生影響的對象(比如,把自己的狀態設置爲final的)

原创 Android進程與線程

進程 < activity>, < service>, < receiver>, 和 < provider>都支持android:process屬性指定他們在哪個進程運行。 開啓多進程 一個App裏面所有的組件,默認運行在以包名

原创 Java虛擬機--編譯期優化

涉及到: 註解的處理 泛型與類型擦除 自動拆箱、裝箱 點贊 收藏 分享 文章舉報 衛星是我朋友 發佈了64 篇原創文章 · 獲贊 4 · 訪問量 2萬+ 私信