馬上過年了,過完年回來就是春招和金三銀四的面試季了,今天分享一下面試前的準備技巧和一些Android面試要點,這篇文章適用於所有需要就業的小夥伴,不管你是名校畢業,還是雙非出身,我相信這篇文章能給你帶來一點點的小的收穫!
主要講的幾個部分:
- 引人注目的簡歷
- 常見的面試小技巧
- Android 面試要點
- 高質的學習資料
引人注目的簡歷
準備簡歷有兩點是絕對要記住的:
-
不要等到真正開始找工作前幾天纔開始準備你的簡歷,越早準備越有優勢!
-
簡歷一定要用 PDF 格式,一定要用 PDF 格式,一定要用 PDF 格式!
簡歷真的很重要很重要,招聘系統或者是郵箱裏一天可能會收到幾十萬份甚至更多的簡歷,HR可能打開10秒都不夠就決定這份簡歷是不通過還是進入下一階段了。
我的簡歷經過了五個版本的修改,從一開始的簡歷掛,到現在,基本上都變成筆試掛了(有毒?)
簡歷的目的:讓企業的人從整體上了解你是一個具備什麼能力的人
簡歷可能涉及到的分點都儘可能全地給你列出來了,你只需要選擇其中適合你的即可:
- 個人信息:你的姓名、聯繫方式、求職崗位(切忌不要寫無關的內容例如身高體重之類的)
- 掌握技能:這一塊是最重要的,面試官會根據你寫的內容考察你掌握的知識
- 校內經歷:在校期間你主要的突出表現
- 項目經歷:如果有團隊項目最好,也可以從
GitHub
上找一個項目練手,再沒有,可以把學校的課程項目寫上去呀! - 競賽經歷:數學建模、ACM、藍橋杯這些高質量比賽一定要寫
- 實習經歷:這點不是必須的,如果有,最好描述清楚實習的工作內容、表現和收穫
- 獲獎證書:CET-4,CET-6,獎學金,軟著,論文······
- 自我評價:不要侷限於寫上爛大街的協作能力強,工作認真······,可以要加上具體內容去支撐你的每個自我評價
如果你不知道該怎麼寫簡歷,我可以推薦兩個鏈接給你,我基本上是按照他們的建議來寫簡歷的:
常見的面試小技巧
面試有很多小技巧的,特別是和 HR 對線的時候(HR看到不要找我呀,害怕.jpg)
我們先來看看和技術面試官對線的時候,有哪些可以用的小技巧:
- 不懂不要說不懂:面試官在知識深度上超出我們的掌握範圍,如果問到不懂可以參考下面的做法:
- 可以結合自己的理解去回答,無論正確與否,虛心請教
- 若是有標準答案的問題但不懂,可以說:“目前還沒有接觸到這部分知識,面試完以後會去學習,加強理解!”
- 引導面試官:面試官拋出一個問題時,圍繞該點展開回答,可以串聯一些其它知識,但不要說太多,引導面試官:
- 提到 ArrayList 時,提一下 LinkedList,引出 LinkedList
- 提到 HTTP 時,提一下 HTTPS,引出 HTTPS
- 手撕代碼:切忌擡手就寫,要確定題意,對有不理解的地方要敢於提問。解題時跟面試官說自己的思路,以及每一步幹什麼,一邊寫一邊向面試官解釋。
- 不要一開始就追求最優解,面試官不會太反感粗糙的代碼,但他希望你是一個有邏輯、思路嚴謹的人。
- 面試官會引導你優化你現有的代碼,不必因爲一開始寫不出最優解而苦惱。
- 反問環節:要從面試官那兒獲得對自己的反饋,比如:
- 你覺得我的基礎如何,之後該向哪個方向加強?
- 當前企業最主要的技術棧是什麼?
- 公司目前的主要業務是什麼?該崗位主要負責什麼內容?
當我們經歷了技術面的洗禮後,順利來到了 HR 面試,這時候要記得:在 HR 面試環節,要在不過分誇張的情況下表現出自己的優秀,表現出對加入公司的嚮往。
HR 主要會問以下幾項內容:
- 瞭解你的個人情況(校內經歷、興趣愛好、家庭情況···)
- 詢問你對公司的瞭解,我們可能面試很多家公司,不可能每家公司都瞭解很透徹,只要瞭解公司的行業,主要產品即可
- 詢問你的期望薪資(這是 Battle 名場面!最後再展開說)
- 反問環節:可以問 HR 關於企業文化和培養新人的制度等,如果有完善的制度和文化,一般 HR 都會回答的很流利的,否則就要慎重了。
Android 面試要點
整個面試題分爲三個部分:Java、Android和項目經驗。
Java技術
Java基礎
- 對抽象、繼承、多態的理解
- 泛型的作用及使用場景
- 枚舉的特點及使用場景
- 線程sleep和wait的區別
- JAVA反射機制
- weak/soft/strong引用的區別
- Object的hashCode()與equals()的區別和作用
集合類
- JAVA常用集合類功能、區別和性能
- 併發相關的集合類
- 部分常用集合類的內部實現方式
多線程相關
- Thread、Runnable、Callable、Futrue類關係與區別
- JDK中默認提供了哪些線程池,有何區別
- 線程同步有幾種方式,分別闡述在項目中的用法
- 在理解默認線程池的前提下,自己實現線程池
字符
- String的不可變性
- StringBuilder和StringBuffer的區別
- 字符集的理解:Unicode、UTF-8、GB2312等
- 正則表達式相關問題
註解
- 註解的使用
- 註解的級別及意義
- 如何自定義註解
Android技術
Android基礎
- 四大組件的意義及使用,生命週期回調及意義
- AsyncTask、Handler的使用
- Android系統層次框架結構
- AsyncTask的實現方式
- AsyncTask使用的時候應該注意什麼
- Android常見的存儲方式
- Looper、Handler和MessageQueue的關係
- Activity的啓動流程(考察對Framwork的熟悉程度)
- 多進程開發的注意事項(Application類區分進程,進程間內存不可見、進程間通訊方式)
Resource相關
- .9圖片的意義
- style和theme的作用及用法
- dpi、sp、px的區別以及轉換關係
- raw和assets文件夾的作用,二者有何區別
- Android系統如何在多個資源文件夾下查找匹配最合適的資源
虛擬機
- Java內存模型
- Android虛擬機的特點
- Dalvik和Art的區別
- 熟悉垃圾回收的實現機制,瞭解虛擬機的GC類型
View相關
- 常用組件的使用:ListView、RecyclerView及Adapter的使用
- View之間的繼承關係
- Invalidate與postInvalidate的區別
- 自定義View的實現方式(根據項目經驗詢問相關組件)。
- onMeasure/onLayout/onDraw的作用
- Paint、Matrix、Shader等繪製相關類的方法作用
- 詳細描述事件分發機制
動畫
- Android有哪些動畫的實現方式
- Interpolator類的意義和常用的Interpolator
- ViewAnimation與屬性動畫有什麼區別
- 如何自定義ViewAnimation
- 屬性動畫的實現原理
圖片處理
- 一般項目中如何加載大圖
- 圖片壓縮的方式
- 如何不壓縮圖片加載高清圖
- 圖片加載過程中,一般會使用緩存,這個緩存的主要作用是什麼
- 談談自己熟悉的圖片加載框架
項目經驗
開發工具
- 代碼管理工具:SVN、Git
- 常用的調試工具:Hierarchy Viewer、DDMS等
- CI工具:Lint檢查,FindBugs、Jenkins
- 內存分析工具:dumpsys、memoinfo、MAT
項目工程
- APP更新策略:推送或者拉取?
- 如何統一處理錯誤崩潰
- 如何進行用戶行爲收集
- 日誌管理有哪些要點?(Debug包開放,release包關閉,錯誤日誌反饋)
- 打包方式Ant、Maven、Gradle
- 機型適配情況
開放平臺
- 是否使用過第三方平臺
- 常用開放平臺的熟悉度(微信、QQ、微博、支付寶等常用的支付和分享)
- 是否進行過對第三方平臺的統一封裝?
- 是否自己開發過SDK?
設計相關
- 有哪些常用的設計模式、設計原則
- 設計模式在Android源碼中的應用
- 設計模式在項目中的應用
- 項目中的分包方式
- MVC在android中的應用,利弊
- android項目中的常見層次結構,包劃分
- 有沒有設計過項目中的層級結構、包劃分
好了,大概就這麼多,大家可以考察下自己對於知識點的掌握情況。
對於答案,我覺得只要你真的會了,用自己的語言去描述就是最好的答案~ 不過爲了讓大家方便複習,我將耗時一年多整理的1025頁的Android高級面試及答案解析分享給大家~
接下來重點來了!!!
高質的學習資料
如今入門Android的門檻已不像十年前那麼高,學習資料隨便百度一搜一大把,我們需要選擇適合自己的、高質的學習資料來學習,否則會降低我們的效率。
我整理了各個科目的一些學習資料,並且自己手工製作了幾幅思維導圖,相信一定對你有幫助!
私信我「資料」即可獲取該文章中所有的高清腦圖!
計算機網絡
計算機網絡是開發中的重中之重,基本上是離不開網絡這一塊的,因爲我們開發的應用要給客戶用的,給客戶都用就涉及到聯網,聯網就涉及到網絡。
對於開發人員而言,應用層、傳輸層是最最重要的,網絡層次之,其餘作爲了解,感興趣可以深入學習。
我閱讀過的書籍有三本:
- 《圖解 TCP/IP》
- 《圖解 HTTP》
- 《計算機網絡:自頂向下》
前兩本書用大量的圖解讓我們對整個網絡世界進行宏觀上的瞭解,第三本書會更加系統、全面地將每一層的知識點講解透徹。
數據結構與算法
這一塊是最最重要的,只要你是研發崗位,就逃不過這一關,但恰恰這是最難的一關,因爲它的靈活多變,學習的難度自然會上升,但這也是被最多人忽略的一個領域。
數據結構算法專題
Android七大核心知識
如果是從事 Android 開發,這部分就相當於我們的根基,這部分知識面有些廣,重要的也很突出:
- 架構師築基必備技能:深入Java泛型+註解深入淺出+併發編程+數據傳輸與序列化+Java虛擬機原理+反射與類加載+動態代理+高效IO
- Android高級UI與FrameWork源碼:高級UI晉升+Framework內核解析+Android組件內核+數據持久化
- 360°全方面性能調優:設計思想與代碼質量優化+程序性能優化+開發效率優化
- 解讀開源框架設計思想:熱修復設計+插件化框架解讀+組件化框架設計+圖片加載框架+網絡訪問框架設計+RXJava響應式編程框架設計+IOC架構設計+Android架構組件Jetpack
- NDK模塊開發:NDK基礎知識體系+底層圖片處理+音視頻開發
- 微信小程序:小程序介紹+UI開發+API操作+微信對接
- Hybrid 開發與Flutter:Html5項目實戰+Flutter進階
上面這幾個知識點是我在面試過程中被問到過次數最多的,如果需要系統的學習,針對這些知識點,我手頭上準備了不少的電子書和筆記,將這些筆記將各個知識點進行了完美的總結。
Android開發相關源碼精編解析
只要是程序員,不管是Java還是Android,如果不去閱讀源碼,只看API文檔,那就只是停留於皮毛,這對我們知識體系的建立和完備以及實戰技術的提升都是不利的。
真正最能鍛鍊能力的便是直接去閱讀源碼,不僅限於閱讀各大系統源碼,還包括各種優秀的開源庫。
主要內含微信 MMKV 源碼、AsyncTask 源碼、Volley 源碼、Retrofit源碼、OkHttp 源碼等等。
Android高級開發面試題及答案解析
面試的前一週時間內,就可以開始刷題衝刺了。請記住,刷題的時候,技術的優先,算法的看些基本的,比如排序等即可,而智力題,除非是校招,否則一般不怎麼會問。
關於面試刷題,我個人也準備了一套系統的面試題,幫助你舉一反三:
完全掌握以上這些不能夠讓你馬上衝進大廠,但至少能夠讓你踏進中廠或者好的小廠,踏進大廠也只是時間問題!
總結
(1)準備一份好簡歷,格式一定要用 PDF,參考網上的模板不斷優化自己的簡歷內容
(2)3月至5月是春招和金三銀四的招聘時間,6月至8月是秋招提前批的黃金時間,9月至11月是秋招的大潮,一定要跟上!
(3)投遞簡歷一定要內推,內推碼和公司都在牛客網
(4)要有自己的一兩個面試小技巧,可以在不斷面試中總結出來
(5)心態要穩,要淡定,你總能成功的
英雄不問出處,總有一片屬於你的天地,一定要試着堅持下去!
- 羨慕那些年薪幾十萬的同學嗎?羨慕。
- 羨慕那些有大廠 Offer 的人嗎?羨慕。
- 羨慕那些已經找到自己熱愛的崗位工作的人嗎?羨慕。
切忌因此而焦躁不安,盲目的攀比只會讓自己的眼光更狹隘,做好自己的職業規劃非常重要,享受追逐夢想的過程吧,萬一實現了夢想,你的下一站又是哪裏呢?
最後再補充一句,不要妄自菲薄,但也不要眼高手低,我們都是普通人,比昨天的自己更進步一些就好了!
以上內容均免費分享給大家,需要完整版的朋友,點這裏可以看到全部內容!!!