原创 android 狀態模式應用場景及分析

狀態模式 作爲java設計模式中常見的行爲型設計模式,一問到大家就說 知道嘛,就是上下文裏面切換狀態嘛,不同狀態幹不同事情嘛 那具體呢,怎樣個落地呢,又是這樣的說法 這個沒法用在我們項目裏,我們項目太大了,一改很麻煩。很多問

原创 java 常見單例使用和相關的內存泄露問題

這幾天剛好在外面面試,被問到設計模式,心血來潮就想記下這方面的東西。像單例設計模式我覺得從大家開始學習的時候就已經寫了對應的代碼,但是到了面試的時候還是拎不清。 記憶中的單例 學習設計模式方面的知識知道單例的目的,“爲了讓類的一個對象成爲

原创 java 聊聊我現在所知道的單例

這幾天剛好在外面面試,被問到設計模式,心血來潮就想記下這方面的東西。像單例設計模式我覺得從大家開始學習的時候就已經寫了對應的代碼,但是到了面試的時候還是拎不清。 記憶中的單例 學習設計模式方面的知識知道單例的目的,“爲了讓類的一個對象成爲

原创 java LinkedHashMap 底層實現和源碼分析

開局分析 首先外面來認識下這個類,LinkedHashMap,從繼承和實現方面講,繼承自HashMap,且實現了Map接口,且內部未做線程安全處理。那麼這裏對HashMap不是太熟悉的可以先參考我前面寫過的《java HashMap 源碼

原创 java LinkedList 底層實現和源碼分析

日常開場吹牛 LinkedList作爲List集合的一種實現類(如果需要了解集合的繼承體系可以參考我另一篇文章《用幾張圖捋完集合的繼承實現關係》),其中和ArrayList的底層實現方式的不同在於,ArrayList的底層是由數組來實現,

原创 java HashSet和LinkedHashSet 底層實現和源碼分析

國際慣例 上來先了解一下HashSet這東西是個什麼來頭 public class HashSet<E> extends AbstractSet<E> implements Set<E>, Cloneable, java

原创 java 建造者模式的實際應用場景

開頭日常吹牛 我想大家在平時寫代碼的過程中肯定會去想這個類我怎麼寫簡潔點,或者後面容易維護些.畢竟項目一大起來,代碼量上去了以後,就算之前寫的時候有寫註釋,但回過頭來看總是需要再捋一遍,這就很浪費時間,畢竟大家都不想拿自己的下班時間來加班

原创 用幾張圖捋完集合的繼承實現關係

難得這幾天都比較閒,所以有時間弄弄博客。剛好在忘了集合的那些繼承關係,就順便整理了一下,而我們平時常見的List,Set,Map,Queue等都有着對應的繼承體系。這裏只列舉了所用的抽象類和常見的實現類,畢竟實現類真的列舉起來就沒完沒了。

原创 java HashMap 底層實現和源碼分析

常規開局 在前面介紹了集合之後,我們也對LinkedList做了相關的分析(詳見java LinkedList 源碼分析),今天我們來對Map體系內比較經典的一個類型——HashMap做下源碼分析,廢話不多說,我們先進入一段廣告,啊呸,正

原创 java Class類getFields和getDeclaredFields區別

Class類 在我們的java學習跟開發的過程中,跟Class類肯定是常常打交道的的,其中最常見的使用場景估計就是反射了,但是在這裏我們常常會發現Class#getDeclaredFields()和Class#getFields()分不清