1. 程式人生 > >非科班生的Android秋招求職經歷

非科班生的Android秋招求職經歷

拼多多 學霸提前批Android研發工程師 offer

筆試

基於給定介面實現ImageLoader框架

一面

  1. 自我介紹
  2. 靜態變數和例項變數的區別
  3. 重寫equals()方法的注意事項;兩個list是怎麼判斷是否相等的?
  4. HashTable和HashMap的區別;是否允許鍵為null
  5. 資料同步的方法;synchronized可以在物件上加鎖嗎?在方法上加鎖是加在哪個物件上?
  6. 程序間讀寫檔案的同步方式
  7. 瞭解哪些加密演算法;AES和RSA的區別
  8. HTTP響應碼
  9. 程序優先順序;Android程序優先順序
  10. 如何使一個Service處於另一個程序中;程序的服務保活
  11. Touch事件分發機制
  12. 如何實現客戶端長連線的?重試策略是怎樣的?如何監控HTTP請求的?
  13. 提問問題

二面

HR面

也不能算是HR面吧,簡單聊了聊。
1. 專案介紹;擔任的角色
2. 家庭情況;期望薪資
3. 在哪裡實習?實習的時候拿到過哪些offer
4. 介紹了拼多多的待遇以及工作制度

三面

  1. 自我介紹;專案問了些
  2. 如果安卓是單執行緒的,那麼如何處理介面重新整理和網路操作兩個模組
  3. 演算法題。

CVTE TE計劃 Android開發工程師 HR面掛

一面 電面

  1. 自我介紹
  2. Activity的launchMode,每種的概念;singleInstance用在什麼情形
  3. 轉動螢幕時會發生什麼?如果有一個進度條,轉動螢幕時會發生什麼?如何是自定義的進度條,怎麼辦?
  4. Thread和HandleThread有什麼區別;MessageQueue的結構
  5. 程序和執行緒的區別;Android的多程序通訊方式;aidl是怎麼使用的
  6. 多執行緒的問題。每個執行緒一個單例,怎麼做?ThreadLocal怎麼用的?
  7. 瀏覽器輸入www.google.com之後用到的協議;NAT是怎樣的?
  8. 記憶體洩漏的情況;Handler洩漏的具體場景,如何避免;GC的過程;強軟弱虛引用
  9. 如何複用View;ViewHolder是如何使用的;ListView是如何複用View的
  10. 事件分發機制;dispatchTouchEvent和onTouchEvent的區別;
  11. 瞭解過哪些開源框架;OkHttp和HttpURLConnection的區別
  12. 職業規劃

二面 視訊面

  1. 自我介紹
  2. 長連線如何實現的;TCP粘包怎麼處理的;協議改進的方法;MINA、Netyy框架
  3. OkHttp的原始碼,攔截器一塊的原始碼;有沒有自己實現攔截器;OkHttp這樣設計的好處;Volley快取一塊的設計;UIL如何管理請求的;
  4. Android的效能優化;
  5. 為什麼有滑動衝突;怎麼處理;涉及的主要方法有哪些;dispatchTouchEvent、onInterceptTouchEvent和onTouchEvent分別用在什麼地方
  6. Binder的機制;aidl;服務端如何確定呼叫的是哪個方法;Binder執行緒池,執行緒安全指什麼;
  7. RxAndroid用在哪裡;用到了哪些操作符;map和flatMap的區別
  8. 專案中用到了哪些設計模式;模板方法是怎麼使用的
  9. 手寫程式碼,實現一個數據結構:棧,考慮擴容,加入執行緒同步。
  10. 寫過部落格嗎?主要內容是哪塊;參與過開源專案嗎?
  11. 瞭解過Android的最新動態嗎?有沒有用Kotlin做過專案;如何學習一門新語言
  12. 瞭解過CVTE嗎?以後的職業規劃

終面HR QQ視訊面

面了兩次CVTE的hr面,總結了會問的問題。如下:
1. 前面的面試如何,打個分
2. 職業規劃;工作時間
3. 家庭情況;性格都是怎樣的,對你的性格有什麼影響
4. 如果CVTE給你offer了,如果不會來,會是什麼原因
5. 目前拿到了哪些公司的offer?CVTE也給你offer了,你會選哪;還會在投其他公司嗎
6. 宿舍關係怎麼樣?人生中壓力最大的事情

HR面又掛了,實習的時候也是HR掛了,讓我不得不懷疑我是不是心理有問題了,哈哈。

遠景能源 offer

由於實習的時候拿到了實習offer,所以走的綠卡流程。在上海實習的,就直接去公司面試的。

一面技術

  1. 自我介紹
  2. 說了下?做的是什麼?
  3. 使用的UI自動化測試框架的原理是怎麼樣的?討論了下iOS是如何進行UI自動化測試的
  4. 對熱修復的理解;能否修復so包?
  5. GC;碰到的OOM情況;聊到了參加的阿里中介軟體比賽,說了下當時的思路;如何進行記憶體分析
  6. TCP程式設計時的協議是如何制定的;有什麼改進的地方;PB的編碼方式是如何的,如何可以節約空間的。
  7. 聊了聊RN以及對技術框架選取的一些看法

HR面

HR面比較簡單

通過技術面後做了兩個測評,類似心理、情商評價之類的。

高管面

高管面比較簡單,就QQ視訊了5分鐘,簡單聊了下實習的氛圍和以後的打算。

offer

有贊

一面 Android開發工程師

  1. 自我介紹
  2. 如何學習Android
  3. 如何設計一套圖片載入框架;三級快取。為什麼選擇LruCache?
  4. 瞭解過launchMode嗎?使用過的具體模式的場景?微博分享頁面應該使用哪種launchMode?
  5. 知道記憶體洩漏嗎?瞭解的記憶體洩漏?Handler在哪種情況下會引起記憶體洩漏?什麼好的工具可以檢測記憶體洩漏?
  6. IntentService原理
  7. 用過WebView嗎?
  8. 如何實現一個圖片瀏覽器的思路?
  9. 有什麼想要問的?

有贊 Java開發工程師

一面

  1. 自我介紹
  2. 專案提問
  3. TCP連線;為什麼不是兩次;為什麼不是三次
  4. HTTP請求報文結構;GET與POST請求;HTTP版本知道哪些,區別是什麼
  5. 程序排程演算法有哪些;死鎖的必要條件;如何消除;如何避免;銀行家演算法;
  6. Java的集合;HashMap的結構;為什麼改成紅黑樹;阻塞佇列一般用在什麼地方
  7. Java泛型;泛型擦除;任何情況下都會發生泛型擦除嗎?
  8. 雙親委派機制;兩個類被不同的類載入器載入,是同一個類嗎?
  9. 如何實現一個執行緒;執行緒的狀態機;什麼情況會使執行緒阻塞;ThreadLocal;幾種執行緒池;如何自己設計一個執行緒池

二面

  1. 自我介紹
  2. 自己做的app是怎麼做的;
  3. Java的GC;ActiveMq看過原始碼嗎?MySql學習過嗎?
  4. 使用過哪些設計模式?
  5. 程式設計。主要考察程式設計能力和程式設計習慣。一個字串,統計某個字母出現最多次;寫好之後,改了需求,找出出現次數最多的十個字母
  6. 雙親委派模型;為什麼要雙親委派模型
  7. 提問問題

頭條 Android開發工程師 offer

終面(春招拿到了offer,綠卡)

  1. 實習專案介紹;如何實現的;為什麼使用反射;XML解析的方式;DOM和SAX解析的區別;註解的分類;ButterKnife實現原理
  2. MVP模型是怎麼樣的;如何實現的;P層是怎麼實現的
  3. 為什麼選用OkHttp庫;攔截器鏈是如何實現的;自己實現的攔截器是用於哪裡的;是如何做DNS的;
  4. 處於onResume的activity a啟動activity b按照時間順序生命週期是如何呼叫的;onSaveInstanceState方法會在什麼情況下呼叫
  5. View的事件分發機制;ACTION_CANCEL什麼時候被呼叫,一般switch-case中如何處理;
  6. Android常見引起記憶體洩漏的情況;Handler引起的記憶體洩漏是怎樣的一個過程;使用過哪些工具進行記憶體洩漏問題;LeakCanary的工作原理是怎樣的;MAT如何進行記憶體洩漏分析;
  7. HTTP2和HTTP1.1的區別。HTTP/2 新特性淺析
  8. 手寫演算法題。一個二維陣列,左到右有序,上到下有序,如何找一個值。劍指offer原題。
  9. 看過哪些原始碼;如何看原始碼;如何學習Android

一個月後拿到了意向書,互娛部門,做抖音。

阿里文娛 優酷 Adnroid開發工程師 掛

終面(春招拿到了實習offer,直通終面)

  1. 自我介紹,專案介紹
  2. 閱讀類APP有沒有後臺?沒有後臺的話,每一個app都要去獲取多餘內容可以怎麼改進?爬蟲怎麼做的?
  3. ImageLoader怎麼實現的?三級快取怎麼做的?儲存圖片在記憶體中會發生OOM嗎?
  4. MVP模式的理解
  5. 資訊推送怎麼實現的?協議怎麼設計的?AES演算法是怎樣的?如何保證資料的正確性和不遺漏訊息?
  6. 實習的專案是如何做的?怎麼去匹配XML和TXT中的欄位?
  7. UML瞭解嗎?軟體開發流程是怎樣的?
  8. 設計模式瞭解嗎?如果一個支付的模組,會呼叫不同銀行的介面,不同銀行的介面所需引數和返回引數均不同,使用哪種設計模式?
  9. Android機型適配怎麼做?如何捕獲Crash?
  10. 本科和研究生均不是計算機的,怎麼學習的?
  11. HR問了工作地點的意向;投了哪些公司;目前拿到了哪些offer
  12. 提問了面試官關於Android APP測試的問題,瞭解了行業情形

1v2,技術經理和HR,HR是遠端實時聽錄音的

半個多月後問hr,掛了。真是坑比啊,由於把我簡歷鎖著,我一直報不了杭州這邊的阿里,筆試面試都沒有機會。日了狗了

網易 內推 Android開發工程師 掛

一面

  1. 自我介紹;除了Android還做了其他的哪些專案;
  2. Activity的lauchMode;用過哪些;說了一個他們遇到的問題,讓幫分析分析
  3. 知道的網路庫有哪些;Volley和OkHttp分別適合用在什麼場景下
  4. ImageLoader的三級快取是怎麼實現的;磁碟快取是怎麼實現的;知道哪些圖片載入框架
  5. 記憶體洩漏如何檢測;LeakCanary的原理;Handler是如何造成記憶體洩漏的;內部類都會造成記憶體洩漏嗎?
  6. 參加的阿里中介軟體比賽是怎樣的;簡單實現一個生產者-消費者
  7. Java的執行緒池有哪幾種;需要定時任務使用哪種;CachedThreadPoolExecutor是怎樣的
  8. 應用通訊是如何確保安全的;Https是怎樣的;Android如果採用Https通訊的話,客戶端這邊需要有什麼
  9. 提問問題

二面

  1. TCP的連線為什麼是三次握手,不是兩次也不是四次

答案

  1. 對Android框架層瞭解嗎?AMS和WMS瞭解嗎? (說了瞭解AMS,噩夢由此開始)
  2. Fragment用過嗎?Activity如何傳參給Fragment?為什麼用setArgument傳參,而不是使用帶有引數的構造器?
  3. 知道系統殺程序嗎?如果棧中從底到頂現在是A,B,C,然後系統把應用殺了,重新點選,顯示的是哪個Activity?這時如果C裡面有Fragment是怎樣恢復的?(中途解釋了為什麼要用setArgument傳參,說在走Activity的生命週期之前會先有一個恢復過程,反正聽的雲裡霧裡)棧下面的A,B存不存在
  4. Binder機制;為什麼Binder是一次拷貝
  1. Activity和Service有什麼區別;Service是誰管理的;bindService需要使用到Binder嗎?系統服務和自定義服務啟動有什麼區別?
  2. 對協議的理解

秋招正式批的時候,又做了網易筆試,後來又通知去筆試,但由於已確定去51信用卡了,就沒有再去杭州面試。

360 Java工程師 掛

一面 18min

  1. 自我介紹
  2. String和StringBuffer的區別;StringBuffer在傳參時用final修飾,可變嗎?
  3. HashMap與HashTable的區別;HashMap在插入自定義類時,要重寫哪些方法,為什麼
  4. volatile關鍵字
  5. Java虛擬機器,瞭解多少說多少
  6. 鎖的類別;用過嗎
  7. 資料庫瞭解嗎?sql語句
  8. 用的什麼IDE;Linux熟嗎?專案有部署到Linux上嗎
  9. 專案中使用到什麼框架沒
  10. 專案中用過哪些設計模式

二面

  1. 自我介紹
  2. 關於專案提問的
  3. 資料庫瞭解嗎
  4. 執行緒安全的集合類有哪些;迭代器模式是怎樣的
  5. 設計模式瞭解嗎?哪些是構建型的
  6. 優勢在哪裡;以後的職業規劃
  7. 提問問題

三面 HR

  1. 自我介紹
  2. 期望薪資;期望工作地
  3. 目前投了哪些公司;會去哪家公司
  4. 有什麼問題提問

三面完gg,估計在武漢要的錢太多了

商湯科技

面試前發現崗位是測試工程師,結果一面是個測試面的;而且那邊網訊號很差,聽不到聲音,全程打字,好尷尬。

一面 測試(因同名而導致資訊錯誤)

  1. 寫一個Http請求
  2. 寫一個檔案讀寫,從一個檔案讀,然後寫入另一個檔案
  3. android 的頂部banner用什麼控制元件實現;核心程式碼
  4. 不想做測試,更想做開發?對商湯的瞭解
  5. 提問問題

後來參加筆試,過了筆試,由於不想去北京,所以拒了面試。

新美大 Android開發工程師 offer

一面

  1. 自我介紹
  2. 為什麼選用OkHttp?為什麼用MVP模式?
  3. ImageLoader的三級快取怎麼做的;OkHttp的磁碟快取怎麼做的?
  4. 如何刪除文章的廣告之類的?有遇到不符合的情況嗎?
  5. HashMap是執行緒安全的嗎?HashMap執行緒不安全會造成什麼現象?如何使HashMap變為執行緒安全的?
  6. Java的記憶體模型;GC;遇到過OOM情況嗎?有什麼可以檢測記憶體洩露的工具
  7. 文章列表用的什麼什麼控制元件?ListView如何優化?RecyclerView用過嗎?和ListView的區別
  8. 應用中有幾個Activity;ViewPager巢狀Fragment怎麼用,遇到過什麼坑沒?
  9. 自定義View時自定義屬性該怎麼做?
  10. 印象最深刻的專案,或難點

二面

  1. 自我介紹
  2. 介面展示用的ListView還是RecyclerView?如何做文章的過濾的?如果改成別的網站需要怎麼做?
  3. ImageLoader怎麼實現的?記憶體快取使用的是什麼策略?
  4. 專案中TCP+HTTP+JSON是怎麼回事?
  5. android ui自動化測試
  6. 實習的專案
  7. 對Kotlin的瞭解;準備讓用Kotlin寫一個介面的
  8. 給了一個佈局,讓說說看怎麼編寫
  9. 瞭解啥新技術
  10. 問問題

三面

  1. 自我介紹
  2. 為什麼選用AES加密?
  3. 全程沒聊技術,介紹他所在部門做的事情,問我感不感興趣,我也提問了一些問題,聊得比較投機
  4. 手上的offer

HR面

問了一些基本資訊,手上offer情況,對薪資的要求。由於三面全程沒問技術,心裡比較虛。

小紅書 Android開發工程師

  1. 自我介紹;專案提問
  2. 為什麼使用AES加密,不使用HTTPS?AES本地加密,如何防止apk被反編譯?TCP協議報文是如何定義的?如何解決分包的問題的?對HTTP2.0有什麼瞭解?
  3. Launcher->A->B->C->D->A(singleTop)->B(singleTop)->C(singelTop)->D(singleTop)->A(singeTask)->B(singleTask)->C(singleTask)->D(singleTask)->A(singeInstance)->B(singleInstance)->C(singleInstance)->D(singleInstance)後,返回棧裡有幾個Activity,分別是怎樣的?有幾個任務棧?
  4. 程式設計題。n元,一瓶汽水1元,一個瓶蓋0.2元,問可以喝多少瓶汽水。
  5. 提問

說一面通過,10月中旬再進行面試

招銀網路 軟體開發工程師

  1. 自我介紹
  2. 專案提問
  3. AES加密演算法
  4. MVP模式
  5. GET和POST區別
  6. 靜態變數和成員變數的區別
  7. 獲得Class物件的方法
  8. 筆試做的怎麼樣
  9. 提問問題

一面後沒有繼續去現場繼續面試

鬥魚 Android開發工程師 掛

現場首先一個小時做一套卷子,然後筆試過了再面試。

一面

  1. 自我介紹
  2. 對著卷子中問問題;一個棧不可能的出棧順序;演算法題的思路;快排是什麼
  3. Java基礎

二面

二面技術官是個話癆,全程不聊技術,就聊Android以後的走勢之類的。

HR面

HR也就是聊了聊意向地,優缺點,希望工作地、薪資等等。

之前說鬥魚比較難進,但是這個面試真的是太水了,據說今年漲薪了,希望能拿到這樣一個offer,在武漢還是挺有競爭力的。最後估計因為直播看的不多,以及人招的確實少,掛了。和我一起的一個阿里大佬也掛了

ThoughtWorks 軟體開發工程師 掛

內推的,首先做了一個網上作業,兩三天做完,地址在我的Github上面

一面

  1. 自我介紹
  2. 就做的網上作業,增加新需求,有一些日子有打折活動。對於我這種擴充套件性很強的程式碼而言,簡直so easy
  3. 專案提問
  4. MVP模式;ImageLoader哪幾級快取,怎麼實現的;
  5. 之前參加的結對程式設計比賽,怎麼看

HR面

HR主要就專案遇到的困難,個人性格問題進行提問,英文簡單問了兩句。主要是考察價值觀和thoughtworks是否相同,要表現地善於合作、分享這些吧。

海康威視 Android開發工程師 offer

一面

  1. 專案提問;採用的什麼方式解析XML;XML解析的方式有哪些;為什麼選用SAX解析方式
  2. 反射涉及涉及哪些方法;如何判斷文件結構是否變化的;
  3. TCP和UDP;HTTP報文協議
  4. AES加密演算法;什麼是對稱加密演算法、非對稱加密演算法;知道哪些非對稱加密演算法

HR面

聊了期望薪資,工作地點和手上的offer情況。

貝貝網 Android開發工程師 offer

一面

  1. 自我介紹
  2. 三級快取怎麼做的;記憶體快取的大小怎麼定的;
  3. 實習為什麼選擇**公司;實習專案是怎麼做的
  4. 阿里中介軟體比賽是怎樣的
  5. 問問題

一面比較輕鬆,二面比較深,畢竟技術合夥人面試的,感覺不太好

二面

  1. 自我介紹
  2. 用了哪些開源庫;對Android哪些熱點技術研究了;熱修復的原理是什麼,看過原始碼嗎
  3. 模組化了解嗎?如果自己實現怎麼實現
  4. 圖片三級快取怎麼做的;如何避免OOM;
  5. 有沒有對效能優化進行過研究;overdraw如何解決

HR面

  1. 家在哪裡;對貝貝的瞭解;手上的offer;七天出訊息
  2. 興趣愛好

offer給分配了Java開發一職。

騰訊 Android開發工程師 掛

一面

  1. 自我介紹
  2. 學院多少人;程式設計水平排名如何;最近一次不是為了找工作而程式設計是什麼時候;給offer後可以實習嗎?抽菸嗎?喝酒嗎?興趣愛好?
  3. 談談Java的GC;記憶體洩露的引起原因;優化記憶體方面寫程式碼有什麼注意的,有什麼實際應用
  4. 一道多執行緒設計題;從檔案A和B中每次讀1K資料,然後將這兩塊組合起來發到網路上,怎麼設計,提示從多執行緒考慮;給出瞭解決方案後,問了下BlockingQueue的底部實現原理;然後問網路上傳資料有哪些方式;如何制定自己的TCP協議
  5. 一道演算法題。一個字串,中間有型別”\哈哈”表示一個表情,然後讓你把字串區分出型別,比如文字->某某表情->文字…這樣一個形式
  6. Android掌握的怎麼樣;然後問了一道關於事件攔截的題;一個ViewGroup,它的每個子View都是可以隨意拖動的,該怎麼實現
  7. 提問問題

二面

二面就是聊天,全程沒技術,然後把我掛了。騰訊從此粉轉路。不想招人就別叫我去面試啊,逗。成為了面試官KPI的犧牲品

51信用卡 Android開發工程師 offer

一面

  1. 自我介紹
  2. 註解的型別;編譯時註解和執行時註解的區別;如何實現編譯時註解;有沒有自己實現過
  3. 瀏覽器輸入一個網址經歷過的流程;DNS具體過程;DNS攔截知道嗎?如何解決DNS攔截?
  4. HTTPS過程;如何防止HTTP請求被監聽;
  5. HTTP Get請求的位元組限制數是多少?HTTP快取是怎麼做的;如何瀏覽器請求了一個沒被修改過的響應,返回碼是多少
  6. OkHttp的流程;Socket複用是如何實現的;OkHttp是如何管理連線池的;Okio是如何實現的;和傳統IO有什麼區別;NIO和BIO的區別;Retrofit瞭解嗎?
  7. 如何更改移動一個View;屬性動畫的原理;Interpolator的設計模式是什麼;如何實現一個圓形的ImageView
  8. Activty、Window、View的理解;Activity的onCreate()可以獲取View的寬高嗎?如何在onCreate()裡獲取View的寬高?子執行緒可以更新UI嗎?一定不可以嗎?
  9. Activity的啟動流程;如何啟動一個沒在Mainfest中註冊的Activity
  10. 熱修復技術瞭解過嗎?Tinker為何是全量dex?Android的類載入機制是怎樣的?如何載入一個dex?
  11. 提問問題

二面

  1. 實習期間做的專案;用到什麼框架沒;
  2. 做的APP是怎麼做的;如何實現文章抓取的;刪除了哪些標籤;
  3. 三級快取是如何實現的?LruCache的實現原理?載入圖片的一個過程;HTTP請求時,如果響應沒有修改,返回哪個響應碼;還遇到過哪些響應碼;如果刪除策略修改了,怎麼辦?
  4. 阿里中介軟體比賽,談了談體會;對開闢執行緒的看法;執行緒池數量的設定
  5. 應用中遇到開發問題怎麼解決的;對安卓的看法
  6. 為什麼選用MVP模式開發?好處是什麼?應用中有多少個Fragment
  7. 雙重檢查鎖的好處;如果不用雙重檢查鎖,那麼會出現什麼問題;synchronized加在方法上有什麼影響
  8. 專案採用的架構

三面 現場

終面是趕到現場面的,主要算是聊了聊。包括專案團隊如何寫作的,專案是如何實現的,對app效能優化方面的認識,對app加固混淆方面的瞭解;優缺點

HR面

主要聊了下之前的面試感覺、期望薪資、三方什麼時候發放、能否實習,其他一些忘記了。

挖財 Android開發工程師

一面

  1. 自我介紹
  2. 應用的心跳機制和斷線重連機制怎麼實現的?用的Socket是java層的還是jni層的?心跳包是如何設計的?如何監測網路變化的?在新版本中,不能使用廣播,該如何實現?
  3. jvm的堆、棧和方法區有什麼區別;sleep和wait有什麼區別
  4. 雙重檢查鎖的單例模型;為什麼要用volatile修飾,如果不的話,會有什麼問題
  5. 25匹馬,5個賽道,決出前3名
  6. Activity啟動流程;View繪製發生在哪個階段
  7. 登入過程,如何保證密碼安全傳輸
  8. 解決hash衝突的方法有哪些;連結串列插入查詢時間複雜度多少;如何提升到log(n)

二面 現場

二面的面試官是個年輕女性,我一開始還以為是HR呢。
1. 自我介紹
2. 專案是怎麼做的;有沒有用單測;gradle用過嗎?
3. Github上最喜歡的一個庫
4. 還有一些其他問題忘記了,面完說hr不在,會電話聯絡我,不知道是不是被套路了

後來打電話去問,說二面過了,等hr面,不過hr遲遲沒來。

酷家樂 Android開發工程師

  1. 部落格上春招面試經歷,為什麼面了那麼多公司,最後拿了哪幾家的offer
  2. 自我介紹
  3. MVP模式;RecyclerView中的Adapter放在哪一層;放在View層和放在Model層有什麼區別
  4. android的動畫;4.4之後activity的transion動畫屬於哪種;Path動畫用過沒
  5. Handler訊息機制;view.post()與Handler.post()有什麼區別;
  6. 事件傳遞機制;OnTouchListener和onTouchEvent()是怎樣一個具體流程
  7. Android優化了解哪些;include和merge有什麼區別;viewstub使用時需要注意什麼地方;
  8. 記憶體洩露是什麼
  9. Java的集合框架;HashSet的內部實現;為什麼使用HashMap實現hashSet;SparseArray原始碼
  10. 提問問題;問了下公司規模和開發氛圍

一面掛。不過說實話,面了這麼多公司,一面掛的也就酷家樂了

總結

準確的講,找工作是從春招開始的,因為當初的找實習也是為了秋招找工作增加經驗。關於實習的面試經歷,可以參考2017春招實習-Android開發面經-bat,td等公司,最終出於工作地點的考慮和卡中心的福利,選擇了去卡中心實習,也順利轉正了。由於比較想去杭州發展,所以重點投了杭州的一些獨角獸公司,比如51信用卡、有贊、挖財、貝貝等等,也算有幸拿到了兩家的offer,所以最後也選擇了51信用卡。
關於校招,想說的很多,經驗也有不少,總體來說:基礎(演算法、語言、網路、作業系統…)+專案+面試表現。

基礎

演算法

至於基礎的話,演算法很重要,因為演算法渣,很難過筆試,關於這方面,掌握基礎演算法(排序,查詢,樹和圖的遍歷等),把劍指offer刷一遍,再刷些leetcode應該差不多了。(秋招,沒過的筆試有百度、搜狗、蘑菇街、滴滴、搜狐、新浪,有些公司不招人那就沒辦法了)推薦一本書:資料結構與演算法經典問題解析:Java語言描述(原書第2版)

語言

網路

網路的話,主要就是TCP、UDP、HTTP1.1/2.0、HTTPS。TCP設計連線、斷開連線、擁塞控制、流量控制等等;HTTPS設計證書下發,加密演算法等等。最好有網路程式設計的經驗,對TCP的分包粘包這種概念理解更深,以及TCP協議的設計和序列化,這裡可以瞭解下protocolbuffer序列化方式。
對於Java開發者,Netty原始碼可以看看;對於Android開發者,OkHttp可以看看,可以加深對HTTP協議的理解。

作業系統

春招時,被阿里問到了程序管理,當時沒看作業系統,然後就白瞎了。我認為主要掌握程序管理、記憶體管理,這是問的比較多的。其他部分的話,追求越高,自然懂的也就要越多

專案

專案就仁者見仁,智者見智了,不過建議是可以放到github上,包裝包裝。

其他

面試表現=80%基礎+20%臨場發揮,所以基礎很重要,基礎很重要,基礎很重要。
關於比賽和論文,這些都是我沒有的,這些也都是加分項。之前參加了阿里中介軟體比賽,進了複賽,面試中也被問到過幾次,還沒找工作的朋友們可以準備準備,還來得及。

最後祝大家都能找到一個滿意的工作,滿意是針對你自己的水平和期望而言的。水平是根據你的天賦和付出而言的,什麼都不做而拿不到好的offer而說不滿意,這是不對的。心態很重要,認識自己很重要。