原创 Android WebView的兩點技巧-資源攔截與js注入

1.前言 WebView是個很常用的控件,但是缺不是那麼簡單,那麼,今天來給大家介紹下最近在做的時候,遇見的幾個問題。注意,並不是所有的情況下,webview加載的都是自適應的網頁。比如說,加載<p></p><img></img>

原创 Java基礎-理解散列與散列碼

1.從HashMap說起 我們知道Map以鍵值對的形式來存儲數據。有一點值得說明的是,如果要使用我們自己的類作爲鍵,我們必須同時重寫hashCode() 和 equals()兩個方法。HashMap使用equals方法來判斷當前的

原创 Java併發基礎(九)-Fork/Join框架

1. 什麼是Fork/Join框架 Java 1.7 中提供了Fork/Join框架,實現了work-stealing算法(工作竊取算法),什麼意思呢?就是說,我可以把當前任務分割成多個小任務,讓空閒的線程也進行工作,是不是很贊,

原创 Java併發基礎(八)-locks包

1. 前言 Java鎖的種類 java中的鎖種類是真的多。而locks包下也有一些。包結構如下: AbstractOwnableSynchronizer 一個線程擁有的同步器,這個類提供了創建鎖和相關同步器的基礎 Abs

原创 Java基礎之-容器類概述

0.容器類 Java中,按照保存對象的不同,分爲Collection和Map兩種。其中Collection是一個獨立元素的序列,又按照一定的規則,分爲一下三類: List 按照插入的順序保存對象 Set 不能有重複元素 Queu

原创 Java併發基礎(四)-volatile和synchronized

0. 內存可見性 Java中,所有的變量都是存在主存中,這對所有的線程都是共享的,而且每個線程都有自己的工作內存。當線程與其他線程共享一個變量時,便會把主內存的變量複製到線程內存中去。當發生對變量的修改時,會同步到主內存,主內存再

原创 Android基礎-Android中的HashMap淺析

以下源碼基於Android中改造過後的HashMap 0.HashMap中的關鍵變量 MINIMUN_CAPACITY = 4 (最小容量) MAXIMUN_CAPACITY = 1 << 30 ; (最大容量) private

原创 Java基礎-ArrayList源碼淺析

以Java8爲版本分析 1.認識ArrayList的關鍵變量 在ArrayList中,關鍵變量有兩個。 //存儲對象的數組 transient Object[] elementData; //數組長度 private int si

原创 Java併發基礎(二)-線程池基礎

1. 前言 從Java 1.5 開始,併發包裏面提供了Executors類,這個類提供了幾種線程池的實現。下面對ExecutorService以及幾種線程池進行說明。 2.ExecutorService ExecutorServi

原创 Java併發基礎(三)-線程安全

1. 什麼是線程安全 如果一個對象可以安全的被多個線程同時使用,那麼它就是線程安全的 當多個線程訪問一個對象的時候,如果不考慮這些線程在運行時環境下的調度和交替執行,也不需要額外的同步,或者在調用方進行任何其他的協調操作,

原创 Java併發基礎(五)-CountDownLatch、CyclocBarrier、Phaser的使用

1. CountDownLatch 一個同步工具,允許一個或多個線程去等待其他線程中執行的一系列操作完成。 什麼意思呢?就是說,允許這個線程阻塞,直到,其他線程的所有操作都完成之後,在繼續執行。舉個例子。 public

原创 Java併發基礎(一)-線程基礎

只要涉及到線程,其運行結果就是不確定的,雖然說java很早就提供了線程以及併發的支持,但是我們需要知道,線程是完全交給調度器的。有很多同學在編寫書上的代碼時,會發現運行結果不一致,其實這不是書上的例子錯了,而是運行環境不一致導致

原创 Android網絡開源庫-Retrofit(五)簡易封裝

1.前言 Rrtrofit的擴展性很強,如果對retrofit不熟悉的話,是很難應對各種各樣的需求的。因此,在這裏,做一下簡單的封裝。主要爲了下面三點需求: 使用簡單 加密處理 錯誤處理 2.怎樣才能簡單使用 爲了簡單粗暴,我

原创 Java併發基礎(六)-Exchanger和Semaphore

1. Exchanger Exchanger提供了 一個同步點 , 在這個同步點,兩個線程可以交換數據,每個線程通過exchange()方法的入口提供數據給另外的線程,並接收其它線程提供的數據,並返回。 看個簡單的例子:

原创 Java基礎-LinkedList源碼淺析

0.LinkedList LinkedList即實現了List接口,也實現了Deque接口,其底層實現爲雙向鏈表。鏈表的特點就是在中間插入數據快,而查詢數據慢。 1.LinkedList中的Node private sta