1. 程式人生 > >2019屆應屆畢業生秋招總結

2019屆應屆畢業生秋招總結

先說說自己的基本情況吧,陝西某雙非一本本科,軟體工程專業,從大二第一學期開始自學Java,Android,大二大三逃了兩年課,在圖書館自學兩年,秋招提前批拿到了網易雲音樂和金山WPS的 Android開發工程師 offer。目前的話,我已經很滿意了,不投了,收手

坑逼學校不讓出去實習,也沒辦法,強制在學校實習。從7月20號在校實習結束之後,開始準備秋招,投簡歷。投了70+份簡歷,目前為止的話,面了6家大廠,拿了兩家offer,還有幾家待面(貝殼找房,蘑菇街),剩餘的筆試也都沒做。面的7家分別是:

  1. CVTE(HR面掛)
  2. 金山WPS(offer)
  3. 途牛(二面主動放棄面試,因為有更好的啊~)
  4. 360(因時間沒安排好,放了二面面試官鴿子,被掛 無奈~~~)
  5. 騰訊 MIG QQ瀏覽器(HR掛)
  6. 網易雲音樂(offer)

因為也知道自己學校不好(高考發揮重大失誤),大一內心非常掙扎,一直不願做一個平凡的人。大一在課餘時間看了一百多本書,大二開始自學安卓,入了安卓的坑,也深知去大廠,必須非常牛逼,牛逼到面試官可以忽略你的學歷。因此大二,大三課全逃,在圖書館潛心修煉兩年。所幸逃了兩年課,只掛了一門,編譯原理,還是開卷,無語。

好了,開始上面經吧:

CVTE一面:

介紹專案架構
MVP,MVC 介紹及優缺點
Butterknife原始碼(直接問原始碼~

~~~)
EventBus原始碼
騰訊Bugly 原理及實現,如果是你的話,你怎麼實現日誌上傳傳策略,答到 後臺sevice+守護執行緒

安卓跨程序通訊方式
記憶體洩露,如何檢測記憶體洩露 LeakCany原理
Binder 原理
(加一個)冷啟動優化
專案中檔案的下載
斷點續傳的實現
Java執行緒安全,jmm,可見性,原子性,有序性 synchornized和lock的區別,以及原理
TCP 如何實現 可靠傳輸?
擁塞控制的四種方法,這個實在想不起來
安卓學習了多長時間,平時怎麼學習安卓?

CVTE二面:

設計模式的六大原則,對六大原則的理解,在專案中的應用
說說你最熟悉的三中設計模式
單例模式如何實現執行緒安全
Builder模式 和set方法有什麼區別
觀察者模式 推和拉,有什麼區別

MVC MVP MVVM 的區別,在專案中的應用
MVP如何進行解耦合,P如何實現V 和M 的互動

看過什麼原始碼?
Retrofit原始碼,如何實現動態代理,和rxjava如何互動,可不可以設定多個convertFactory,如果設定了怎麼辦?如何動態確定
Volley原始碼,快取超時如何判斷

然後是程式設計 題,不能使用 java資料結構,實現棧,需要考慮 執行緒安全 ,泛型 ,擴容, 限定 5分鐘
能不能優化,scyronized 和 volitle 區別,votile原理

IPC方式?
Binder原理?Binder連線池(這個真不會)
Client呼叫Server方法的過程?
看過Framework那些原始碼?

自定義View 需要注意的問題,MesureSpec, 自定義View 動畫的實現

Handler原理?子執行緒如何實現Handler,Message如何儲存在MessageQueen?
有沒有學習什麼新技術,有沒有看今年的Google IO 大會。

面試官看了我的部落格,問了一些簡單的問題

金山WPS一面

介紹一下Volley,okhttp,retrofit
volley的基本流程,OKhttp的攔截器鏈,retrofit的動態代理

photoview如何實現
Glide與Picasso區別
如果讓你設計圖片載入框架,你如何設計(三級快取機制)
外掛化,熱修復,andfix原理,如何做到機型適配(native如何做到機型適配 我很慌啊~~~~)
Hashmap原理,如何實現執行緒安全,HashTable,CourrentHashmap原理
介紹一下java中的鎖
單例模式,dcl存在的問題,如何解決
http/https區別,HTTPS加密如何實現。
get/post區別,post 如何實現密文傳輸
事件分發機制
activity的四種啟動模式,及其應用場景
Handler的使用及其原理,子執行緒如何實現
eventbus幹什麼的,和handler有什麼區別
eventbus能否實現IPC
IPC方式
AIDL底層,沒問Binder原理

金山WPS二面

hashmap的實現方式
hashmap如何查詢元素
static關鍵字
final關鍵字
volatile關鍵字
單例 執行緒安全的實現方式,細節
事件分發
volley原始碼
java函式的訪問許可權
圖片快取框架的區別
java垃圾回收

演算法:
二叉樹遍歷
中序遍歷的下一個節點(劍指offer原題,看了四五遍,還沒記住,該打)
翻轉連結串列
二叉樹深度

途牛一面

應用上線細節(說要搜我上線的應用)

retrofit原始碼涉及的設計模式

handler asynctask HandlerThread 的原始碼

熱修復與外掛化

Java類載入機制

執行緒,執行緒池,執行緒池核心引數

30M圖片的載入,如何預防oom

記憶體洩漏 的檢測與預防

事件分發機制

自定義view

listview 與recycleview 的複用和回收

tcp udp區別

三次握手和四次揮手(這個真沒背,那圖怎麼記啊)

360一面
static關鍵字
syrizoned原理
自定義控制元件
事件分發
滑動衝突
四中引用
弱引用的使用
記憶體洩漏
外掛化 dla原理
65535方法的解決
360二面
介紹一下專案
service的使用
IPC java 安卓 把知道的IPC 全說出來,p/v 訊號量 管道 訊號量 ,複製黏貼版 什麼的
效能優化
ANR
OOM
記憶體洩漏
UI卡頓
BItmap優化
Listview優化
launcher的啟動過程
volley原始碼
butterknife原始碼
熱修復,andfix,sophix,hotfix原理

因為金山二面,和360在同一天面試,金山二面約了45分鐘,結果聊了70分鐘,錯過了360二面的時間,二面面試官一臉嫌棄的看著我。當然這也怪我沒安排好時間,希望大家以後面試時間好好安排一下。

騰訊 一面

activity的四種啟動模式,具體場景分析
volley,OKhttp有什麼區別
OKhttp 複用連線池怎麼實現的(這個沒看過,面完趕緊看)

volley的原始碼,OKhttp原始碼,eventbus原始碼

httpclient,httpURLconnection內部實現(太原理了,沒看過)然後問httpclient,httpURLconnection是哪個組織開源的,黑人問號臉???,還有這種操作。哈哈 。我知道。httpclient是Apache開源實現的,httpURLconnection是sun開源實現的

activity的啟動流程(面試完了趕緊看),說沒看過,看過其他framework原始碼,說來一下handler,asynctask原始碼

Android的任務棧
類的載入過程

不允許寫程式碼,如何定位anr。

service的保活
極光推送的原理 ,心跳包的傳送間隔時間(我回答的是5s,面試官讓我好好思考思考,然後回答根據具體的應用場景進行判斷。巴拉巴拉一大堆)
熱修復原理,andfix,hotfix原始碼?
方法數超過65535怎麼辦?分包是哪個版本開始支援的,之前的版本不支援,如何載入dex檔案。
騰訊 二面

介紹第一個專案的功能,大部分問題是根據第一個專案問的
使用者登入與伺服器進行互動的過程,如何優化。加密:HTTPS,base64,md5,非對稱加密演算法 及其使用場景。
listview 如何進行優化,無限下拉載入如何優化

bitmap的優化

jpg和png圖片的區別(這個打錯了,面試官讓我下去查一下)

三級快取機制,什麼時候記憶體快取,什麼時候磁碟快取
熱修復,阿里andfix,騰訊 hotfix 原理,方案對比

*騰訊面試官 還是主要看 思考過程,對安卓整體的理解,而不是答案。後面網易也是一樣的。*

可能是因為春招面過,評價不太好(當時準備基礎,沒想到面試官面問框架原始碼,16分鐘,gg),導致秋招無法通過。

網易雲音樂一面
安卓常用的佈局,特點。LinearLayout和relaviteLayout 區別

fragment與view的區別

fragment的切換方式

fragment的生命週期

fragment的記憶體洩露

bitmap優化

反射的作用?編譯時還是執行時?

java IO 多執行緒

抽象類和介面的區別

hashmap的底層實現,hash演算法,為什麼選擇hashcode 高16位於低16位異或?直到問到不會~~

synchronized 與reentrantlock 的區別? 等待可中斷的內部實現(what~~~ 說了一下如果是我我該怎麼實現)

eventbus的內部實現 一直問到不會~~~

handler內部實現 一直問到不會~~~
網易雲音樂二面
用過資料庫?寫了一條sql,問我怎麼建索引,然後把 or改成and 問怎麼修改優化?(本菜雞不太會)沒怎麼用過資料庫,只用原生寫過一個小demo,安卓基本都orm框架了吧。然後解釋了我的資料庫是怎麼做的。

資料庫設計規範,三大正規化(資料庫課程逃了一學期,老師吹逼不好好講,沒辦法,會寫sql語句,只知道第一正規化)

volley原始碼,一直問,一直問到不會

專案的難點 MVP的設計架構,MVVM

Drawable 的子類 ,方法(表示只知道 colordrawable,bitmapdrawable,然後繼續追問,就說,看過安卓開發藝術探索,有一張專門講drawable,因為用的少,沒怎麼看,就放過了)
Drawable 和bitmap區別(又來)

okhttp原始碼,brigeIntecptor 作用是什麼?說一下 http header

Http和HTTPS的區別,HTTPS工作原理

事件分發機制
自定義view

最後問我你覺得你那塊需要繼續深入?

具體的HR面 面經我就不貼了吧,都大同小異,真誠一些就好,意願表達強烈一些,也不能太實誠,具體的話,多面多總結吧~~~~

現在工作也找到了,得給自己找點事做,本來說想混吃等死,玩了一週,感覺很空虛,同學基本不是準備考研就是跑招聘會,無聊,接下來的話準備:

  1. 繼續深入學習安卓
  2. 學吉他
  3. 繼續博覽群書
  4. 找女朋友 O(∩_∩)O哈哈~

這是我總結的安卓面試準備大家可以看看

希望我寫的這些能幫助到大家。希望大家沉住氣,都能拿到滿意的offer

大傢俱體有什麼問題的話,可以給我留言,這是我的部落格地址:https://blog.csdn.net/qq_29375837

我也轉載兩句我喜歡的詩鼓勵大家吧

朋友,堅定地相信未來吧
相信不屈不撓的努力
相信戰勝死亡的年輕
相信未來、熱愛生命

也許迷途的惆悵會扯碎我的腳步
可我相信未來會給我一雙夢想的翅膀
雖然挫折的創傷讓我寸步難行
可我堅信光明就在遠方