從投第一份簡歷,到現在正好兩個月。感謝兩個月來身邊的同學,??途W小伙伴,我的學長,親人等對我的支持,沒有你們,我很難堅持到現在。
三月很慘淡,百度不招Android,騰訊沒給面試機會,阿里一面掛,頭條兩次一面掛... 一共投了二三十家,收到的面試寥寥無幾,甚至沒有哪一家能進入二面,整個人真的很難受。但是,找工作還是要繼續(xù)要,漸漸的開始總結面試,把面試錄音記錄下來復盤,反復復習知識點,查閱其延申的內容,多敲代碼,終于在四月迎來的轉機。360,華為,蘑菇街,騰訊,拼多多...offer雨般的到來,我一下子覺得之前的付出都值得了。
說了一堆,回饋牛客的時間到了。我面試的是Android實習。
Android
第一行代碼,藝術探索,進階之光。
進階之光是對藝術探索的補充,藝術探索太理論化了。進階之光覆蓋面更廣,書中有很多例子,可以幫助我們理解。
- Activity生命周期和啟動模式
- ListView優(yōu)化,RecyclerView的實現原理,兩者比較
- Fragment生命周期以及簡單使用
- 廣播:標準廣播,有序廣播,本地廣播,以及運用
- 文件存儲:文件,SP(緩存),Sqlite
- Content Provider的簡單使用
- 網絡,HttpConnection
- Service,AsyncTask(源碼),IntentService(源碼),Handler機制(源碼)
- Glide源碼(我看的是郭霖的博客),OkHttp源碼(看的是進階之光) 如果需要進一步了解還是要去看源碼的
- View機制源碼,TouchEvent的三層傳輸,解決滑動沖突的方案,簡單的自定義View,測量布局繪制
- Bitmap加載優(yōu)化,采樣率,LruCache以及它的實現
- 內存泄漏的幾個場景,單例,Handler等
- 線程池,幾種常見的線程池,線程池相對于線程的優(yōu)點。
- 幾種動畫,以及區(qū)別(問的少)
- MVC/MVP/MVVM,參考進階之光
- 進程之間通信方式,網絡的Socket;磁盤的文件,ContenProvider,數據庫;內存的Intent,Binder
- Binder,問的比較少,面試的時候可以說不知道,大部分面試官不會為難的
- 還有一些比較細的知識點,需要自己去總結了,多去寫代碼,不要只看不練,如果時間不夠,結合自己的簡歷準備,有著重點的學習/復習。
Java
Java核心卷I,JVM虛擬機,Java并發(fā)編程。后兩本沒有全部看完,主要看的是GC和類加載那一塊,并發(fā)的話主要是查詢知識點順帶看的。
- Java基礎,8種基本數據字節(jié)數,封裝繼承多態(tài),接口運用,基本文件,輸入輸出...之類的
- 幾種內部類,尤其是靜態(tài)內部類不持有外部類的引用(內存泄漏那一塊)
- 反射
- 集合框架很重要,ArrayList/LinkeList區(qū)別,HashSet/TreeSet區(qū)別,HashMap(源碼)以及和HashTable,CurrentHashMap,SyncMap的區(qū)別。HashMap幾種遍歷方式,CopyOnWriteArrayList的實現。
- 線程/線程池,四種常用的線程池,線程池處理的流程(進階之光),鎖(類鎖/對象鎖,可重入鎖/不可重入鎖,公平鎖/非公平鎖,簡書上有一篇比較好的文章)
- GC三種算法,GC_Roots的選取,GC的時間安全點,安全區(qū),大對象的處理,7中收集器的原理
- 類的加載
- 還有一些關鍵字:volatile,final(修飾域,方法,類,哪兒運用了),finally,finalize,static(域,內部類,方法,哪兒運用了)
數據結構
- 棧實現隊列,隊列實現棧
- 排序:插入,冒泡,選擇,快排,堆排,歸并,要求時間復雜度,空間復雜度,穩(wěn)定性,要求會寫
- 查找:二分法,散列(散列沖突的幾種解決方法)
- 樹:前序中序非遞歸遍歷,層次遍歷(要求5分鐘內準確寫出來),生成樹算法(動態(tài)規(guī)劃/貪心)
- 其他:鏈表倒置,回溯法,遞歸的運用
- 建議:劍指Offer,LeetCode上騰訊/頭條的訓練題,大概加起來200+題
計算機基礎
操作系統(tǒng)主要復習:
- 內存管理:內存分配算法,分段,分頁....老化,護航效果等等...
- 并發(fā)調度:線程,進程,調度算法,進程之間通信等....幾種通信方式以及總結
- 死鎖產生的原因,以及解決方法
計算機網絡主要復習:
- 應用層協(xié)議:HTTP(頭字段,1,1.1,2各個版本的區(qū)別,狀態(tài)碼2/3/4/5),HTTPS(TSL/SSL),DNS,斷點續(xù)傳
- 傳輸層:TCP(三次握手,四次揮手,滑動窗口,擁塞控制,流量控制),UDP,兩者之間區(qū)別
- 網絡層:IP,(路由表生成)
密碼學:(這一塊主要因為簡歷中寫了Https,做的準備)
- 對稱加密:DES,多重DES
- 非對稱加密:RSA,Diffie-Hellman,Elgamal 之間實現原理的區(qū)別
- 數字簽名,MD5
設計模式
《Android源碼分析》,這本書比較難懂,選擇部分內容看的,結合進階之光比較好。
- 創(chuàng)建型設計模式:單例(每種都需要理解原理),工廠,生成器,原型 (前三個最重要)
- 結構型設計模式:裝飾器,外觀,享元
- 行為性設計模式:觀察者,策略
知道Android源碼哪些地方使用了這些設計模式就更好了!
其他加分項
- 會使用git/github
- 簡單使用Linux(基本指令,權限系統(tǒng),文件系統(tǒng))
- 有寫博客的習慣
一時半會兒想的起來的只有這么多了。謝謝兩個月來,大家的陪伴!十分感謝!
不要放棄,要加油!堅持努力,一切都是上天最好的安排!