本文首發於微信公衆號——世界上有意思的事,搬運轉載請註明出處,不然將追究版權責任。微信號:a1018998632,交流qq羣:859640274java
Java知識
java是Android開發的基礎,在BAT的初面中,會涉及到比較多的java基礎知識,因此比較重要,下面我介紹的書籍內容是由淺到深。android
- 1.Thinking in java:這本書被稱爲Java的三大聖經之一,雖然書比較厚,裏面的例子也比較冗長。可是若是細細去翻閱而且把例子都敲一遍的話,那麼我想你的java基礎會變得很是紮實。
- 2.Effective java:不少人會把Thinking in java 和這本書進行比較,可是我以爲兩本書的側重點仍是不一樣的,TIJ側重的是java基礎,而EJ中會介紹大量的設計模式和最佳編程技巧。因此說這本書的層次比TIJ稍微高一點。這本書比較薄,因此看起來也不會很吃力。
- 3.深刻理解Java虛擬機:前兩本書都是介紹java,因此最後一本書咱們須要瞭解java運行的基礎,而這本書就是一本很好的材料。JVM族語言是一個你們庭,瞭解了JVM和字節碼,那麼你的視野就再也不被java語言所限制了,你會了解到更多與Java同族的語言,這些語言比java優美同時又能使用豐富的java類庫。
- 4.Java併發編程:雖然Effective java和Thinking in java中都有花一些時間講併發,可是裏面講的都不夠深刻。併發編程是一個很是難的事情,因此須要經過一本專門的書籍來學習。
下面是我看上面幾本書寫的筆記和總結,你們能夠看看我着重看了哪幾章,而後根據本身的需求觀看書籍。程序員
Thinking in java筆記面試
Effective java筆記算法
深刻理解Java虛擬機筆記sql
Java併發編程筆記數據庫
Android知識
BAT對於Android知識的要求不只僅停留在調用表層的API,在面試的時候他們常常會問一些Framwork層面的知識,因此Android Framwork層的源碼是必需要看的,可是該看到什麼程度呢?這時候就須要一些書籍來對你進行指導,下面的書籍的內容是由淺到深,你們把握一下本身的層次酌情選擇。編程
- 1.android羣英雄傳:這本書其實也沒有涉及太多的Android源碼,可是對一些API有比較深的解讀,若是你入門Android已經有1年了,能夠讀讀這本書。
- 2.android開發藝術探索:這本書就涉及到了不少Android源碼了,每一章都會由淺到深,從API的調用講到具體源碼的執行流程,因此讀這本書須要一點耐心,建議入門android 2到3年的開發者觀看。
- 3.Android系統源代碼情景分析:這本書我也沒看多少,裏面全是講Framwork的源碼的工做機制甚至還會深刻到Linux驅動,因此你們能夠選擇性觀看。
下面是我看上面幾本書寫的筆記和總結,你們能夠看看我着重看了哪幾章,而後根據本身的需求觀看書籍。設計模式
android開發藝術探索筆記微信
java設計模式知識
設計模式面試的時候不常靠,可是若是問到了,都是必需要回答出來的,要否則很丟分。這裏結合Android也介紹一本書
- Android源碼設計模式解析與實戰:這本書以Android的源碼例子來說java的設計模式,起到了一箭雙鵰的做用,很是適合你們學習設計模式。
下面是我看上面幾本書寫的筆記和總結,你們能夠看看我着重看了哪幾章,而後根據本身的需求觀看書籍。
Android源碼設計模式解析與實戰筆記
算法和數據結構知識
算法和數據結構是你們老生常談的一塊,無論什麼面試筆試他們都會佔據較大的比例。因此這裏我就推薦一本書
- 算法導論:這本書很是厚,裏面也有許多艱深的算法知識。咱們不須要所有看完,抓住幾個章節並用java語言將僞代碼全書實現一遍,那麼你的算法能力就不會弱。如下是我推薦實現的算法章節
- 1.第二章 算法基礎,算法所有實現,課後題全作
- 2.第四章 分治策略,算法所有實現,課後題全作
- 3.第六章 堆排序,算法所有實現,課後題全作
- 4.第七章 快速排序,算法所有實現,課後題選作
- 5.第八章 線性時間排序,算法所有實現,課後題選作
- 6.第九章 中位數順序統計量,算法所有實現,課後題選作
- 7.第十章,基本數據結構,沒有數據結構基礎的人,算法所有實現,課後題選作。有基礎略過
- 8.第十一章,散列表,沒有數據結構基礎的人,算法所有實現,課後題選作。有基礎略過
- 9.第十二章,二叉搜索樹,算法所有實現,課後題選作
- 10.第十三章,紅黑樹,算法所有實現,課後題選作
- 11.第十五章,動態規劃,算法所有實現,課後題選作
- 12.第十六章,貪心算法,算法所有實現,課後題選作
- 13.第十八章,B樹,算法所有實現,課後題選作
- 14.第二十二章,基本的圖算法,算法所有實現,課後題選作
- 15.第二十三章,最小生成樹,算法所有實現,課後題選作
- 16.第二十四章,單源最短路徑,算法所有實現,課後題選作
計算機系統知識
BAT面試的時候有概率會問到計算機系統的知識,好比進程和線程,虛擬內存,文件系統之類的知識。因此須要在這方面補充一下知識。
- 現代操做系統:這本書挺厚的,因此你們只要看一些常考的知識塊就好了:
- 1.進程和線程
- 2.內存管理
- 3.文件管理
- 4.死鎖
下面是我看上面幾本書寫的筆記和總結,你們能夠看看我着重看了哪幾章,而後根據本身的需求觀看書籍。
現代操做系統部分章節筆記
數據庫知識
BAT經常會讓一些作java的面試官去面Android,因此此時數據庫知識就經常會被當成廣度知識來考察面試者。由於我是使用Mysql比較多因此這裏就介紹一本書
- Mysql高性能筆記:這本書也比較厚,因此咱們也只須要抓重點來看。重點有如下內容
- 1.Mysql概述相關章節
- 2.索引相關章節
- 3.SQL優化有關章節
計算機網絡知識
計算機網絡也是BAT面試官常考的地方,這個也是不少人講爛了的東西,因此就不介紹書籍了,給你們畫畫重點
- 1.HTTP相關知識,包括一個Http請求的內部結構,Http各個版本的不一樣,Http的特性等等。
- 2.TCP相關知識,包括三次握手、四次揮手、窗口滑動、擁塞控制等等
- 3.IP相關知識
- 4.5層和7層網絡架構知識,這裏只須要了解框架就行,各個層的具體協議除了上面說的其餘都不須要特別瞭解。
Android開源項目知識
在BAT面試的時候,面試官經常會問到項目中使用過什麼開源框架,如圖片加載框架、HTTP請求框架等等。此時你光會用是遠遠不夠的,你須要將開源框架的架構和源碼分析一遍,這樣纔會給面試官帶來好的印象。我這裏推薦幾個開源框架,你們能夠去看看他們的源碼,在面試的時候也好有一些說的材料。
- 1.Http請求框架:Volley、OkHttp、Retrofit、NoHttp
- 2.圖片加載框架:Fresco、Picasso、Glide
- 3.異步框架:RxJava
- 4.架構框架:Databinding
下面是我翻譯Fresco源代碼項目的總結和databinding的源碼解析,你們對這個有興趣的能夠看看
從零開始擼一個Fresco之總結
MVVM架構篇之databinding源碼解析
不販賣焦慮,也不標題黨。分享一些這個世界上有意思的事情。題材包括且不限於:科幻、科學、科技、互聯網、程序員、計算機編程。下面是個人微信公衆號:世界上有意思的事,乾貨多多等你來看。