面試決心
12月初,靠著享學課堂的童鞋內推,面試了京東北辰,雖卡在hr面試,但是本人對自己的技術能力很有信心,2020年12月22日提出離職,利用7天年假時間去集中面試,最終如愿拿到滿意的offer,
投遞簡歷時,只考慮公司規模,投了10個左右的公司集中面,面試程序一波三折,雖然不是技術面試上的問題,但是有幾家hr和審批也卡人的情況,讓我猝不及防,不知如何表達當時的心情,委屈的內心只能苦笑,
功夫不負有心人,是個坑總有人跳的,終于入坑新東方在線,第一個識訓的offer,終于趕在1月18日生日前得到一絲慰藉,哇咔咔!
面試統計
從我的面試情況來看,不要以為技術面試過了就穩了,hr會卡人(京東),審批會卡人(貨拉拉),所以,面試的時候,要多面試幾家,不要一棵樹吊死,
(1)技術面試,通過 9家:
千喜鶴(2面),廣州星域(3面),寶沃(2面),京東北辰(4面),京東物流(3面),松果出行(2面),新東方在線(4面),貨拉拉(3面),APUS(2面)
(2)技術面試,未通過 3家
探探(一面),小紅書(一面),頭條(二面)
(3)hr或審批,未通過 3家
京東北辰(商詳組):四面技術通過,5面hr拒絕,非學歷背景原因,是hr面試踩坑了,可惜了,
APUS:2面技術沒問題,但是hr拒絕(如果自己當時的工資流水高的話,公司背景好點的話,我就大概率過了,不難過,hr看人也看背景,理解)
貨拉拉:3面技術+hr面試沒問題,但是審批拒絕,很干脆,說有多位候選人了,就不考慮我了(談薪資階段咔嚓掉了,比較心意的一家,委屈呀)
(4)通過后個人拒絕,2家+
截止1月16日寫博客,已經收到1家offer并且表態入職(新東方在線,給的薪資比較滿意,附近還有好幾個同學能一起玩),所以再有新的offer的話,我就不考慮了,目前已經提交流水和期望薪資,還在審批的有3家(京東物流,松果出行,北京寶沃汽車),不過我大概率會拒絕或者讓他們拒絕了,
千喜鶴,個人拒絕了(12月6號周六跑去面試的,2面技術通過,hr和領導太墨跡,就拒絕了)
廣州星域,個人拒絕了(12月25號,現場技術3面,答應的薪資要求,剛出門就打電話說減2K才能進,果斷拒絕)
面試題 總結
說完個人的面試情況,進入正題,下面是我面試這幾家的所有面試題,有很多重復的面試題總結,所以,就不按照公司排序了,
未通過時的幾個面試題
包含京東,頭條,探探,小紅書沒答好的幾個問題
京東:
(1)如何設計模塊,組件,sdk,如何考慮
(2)說說你專案的架構,為何這么設計或這么考慮
(3) 說說記憶體泄漏,越多越好
(4) 說說你的技術難點,如何解決,如何思考
(5)apk安全,你如何考慮
(6)act+fragment的完全生命周期(不是單個說哦)
(7)京東北辰:recyclerView原始碼,必會,包括快取如何實作,哪幾個快取,運作流程等;各種notifyXX的原理,觸發哪些重繪;如何實作下半部分item不移動,上半部分的item高度變化的實作?
探探比較好的面試題:
(1)手拖動View,手松開后完成一個泡泡破裂的影片效果(本質是view事件分發機制+影片選型,分發機制哪個方法處理什么引數,之后怎么觸發影片效果等,問的灰常具體,吐了)
(2) 自定義view相關,invalidate,postInvalidate,requestLayout,深入的說說framework層的流程原理
(3)kotlin 協程深層原理如何實作的
(4)dcl是否執行緒安全?哪一塊出問題,為什么volatile能實作防止指令重排,指令級別如何實作的,物件的創建程序等(多家都問了,很深入)
頭條二面失敗問題:
(1)Permission標簽和uses-permission標簽的區別,設定Permission標簽,如何保證其他行程app不會訪問到act界面?
(2)多手勢的具體實作
(3)轉場影片具體實作
(4)畫中畫具體實作,懸浮視窗具體實作
(5)aidl binder異步呼叫具體實作
(6)如何實作定時任務
全是具體實作,我就呵呵了,
小紅書:
(1)concurrentHashMap 如何加鎖的
(2)measure引數詳解,view設定wrap不起作用
(3)Bind service,如何實作保活
(4)兩個行程act,如何加快啟動速度
(5)性能優化(面試官老插嘴,都說不上話)
(6)Eventbus如何實作執行緒的切換
(7)jetpack的Navigation的xml參考,在什么時候呼叫的?
(8)Inflater.inflate如何實作xml轉java的(framework),方法中的各個引數含義,
通過的面試題,按個人梳理后列舉
基本問題
(1)范型:<super>和<extends>的具體區別;在java編譯程序中的實作原理(范型擦除);逆變協變(范型子類的轉換問題)
(2)性能優化(多家都問了,很大的一個技術專題,靠自己總結),個人筆記總結了7塊:
啟動速度優化
布局優化
代碼優化
記憶體優化(oom anr)
app瘦身
網路優化
電池使用優化
安全優化
存盤優化
(3)ANR:給個標準的回答流程:anr的幾種原因(深入到原始碼,講講AMS.appNotResponding()的流程,你就膩害了),分析工具等怎么分析定位到具體原因,
(4)記憶體溢位(OOM)+記憶體泄漏的區別,分析工具或者開源leakcanary,優化方案,可能會問你,handler怎么導致的oom,如何優化等
(5)事件分發機制+嵌套滑動機制原理,區別
(6)handler相關(給的很全了):流程;threadLocal+內部原理(threadLocalMap如何實作的,key,val是啥,弱參考,是否引起記憶體泄露等);loop()為什么不阻塞主執行緒;什么是同步屏障(屏障訊息);什么是閑時機制(IdleHandler)+作用;訊息佇列的訊息排序順序(delay如何實作的);Message.obtain原理(用了那種設計模式:享元);實作子執行緒的handler流程;handler記憶體泄漏及解決方案;handler和looper,MessageQueue的關系(幾個handler幾個looper,handler的msg可以再別的handler的handleMessage方法上處理嗎);擴展:子執行緒和主執行緒通訊,有哪些方案,
(7)自定義View相關:
framework流程;
mesureSpec的作用;
自定義extends View時,手動處理wrap_content時的坑:直接繼承View的控制元件需要重寫onMeasure方法并設定wrap_content時的自身大小,否則在布局中使用 wrap_content就相當于使用match_parent;
postInvalidate()和invalidate()和requestLayout()的區別(自己總結下吧,里頭有很多點要記住);
在Activity的onCreate方法中獲取控制元件寬高的幾種方式;
View的Draw(Canvas canvas)的繪制流程;
(8)京東一家問了: io流(字符流,位元組流,file和其它流的區別),流如何處理(try catch,流關閉等)
(9)dialog為什么不能用application創建,底層原理(window token)
(10)service面試,生命周期,bind和start的區別,保活等
(11)設計模式概念,設計原則(SOLID),專案中用到了哪些設計模式,開源專案xxx用到了哪些設計模式,代理模式,動態代理如何實作?單例模式中,靜態內部類單例,是final修飾的嗎?
(12)執行緒池,問引數,問keepalive引數作用,原始碼如何實作核心執行緒的運行?絕策略?
(13)如何實作https抓包;如何實作網路請求安全?防止別人抓包或請求,
(14)類加載機制原理
(15)jetpack,livedata粘性原理,原始碼如何實作生命感知,舊資料bug如何修復的?
(16)jetpack,navigation的xml,在哪個步驟被加載執行的?(很難呀)
(17)binder相關,aidl實作原理,如何實作回呼,如何實作binder異步呼叫(頭條)
(18)contentprovider的使用,如何實作跨行程通訊的?流程?
(19)mvc,mvp,mvvm
(20)jni開發:動態注冊流程
(21)例外捕獲(問app的uncaughtException)
(22)act的四種啟動模式
(23)fragment和act的轉場影片,用android.app和v4包的區別(頭條)
java基礎問題/演算法/數構/jvm
(1)static修飾,final修飾,作用
(2)java面向物件特征(封裝,繼承,多型),具體如何實作
(3)hashmap,linkedhashmap,concurrenthashmap,set,都問了,1.7/1.8的各種區別,很細節很細節很細節,具體不說了
(4)synchronized,volatile,reenterLock,AQS,各種區別,static修飾synchronized方法的區別
(5)位元組碼角度說,synchronized底層原理(物件頭,鎖升級程序,自旋鎖)
(6)反射,如何修改final修飾的引數(類反射)
(7)java記憶體模型,java運行記憶體模型及作用,G1回識訓制,VM堆疊的執行流程,指令熟悉嗎?
(8)四種參考的區別
(9)執行緒的狀態有哪些?
(10)equels和hashcode的區別,再set中如何實作?效率問題?為什么要重寫等
(11)https/http區別,tcp/ip和udp區別,三次握手四次揮手,貨拉拉問了tcp底層原理+如何保證tcp傳輸可靠性(校 序 重 流 擁)
(12)k步長的鏈表反轉
(13)二叉樹中序遍歷的兩種實作
(14)一個數的開平方演算法
(15)陣列中,成對出現,只有一個單獨出現?如果有兩個單獨出現?
(16)鏈表反轉有幾種實作?(堆疊,陣列等)
(17)AB執行緒列印
第三方框架題
說明,簡歷上寫的第三方框架,一定要會,而且要看原始碼,
(1)Retrofit(每家必問),看原始碼+詳細總結
(2)Okhttp(每家必問),看原始碼+詳細總結
(3)Rxjava(高頻),會問上游執行緒調度和下游執行緒切換,背壓等
(4)LeakCanary(高頻):和OOM一起問,問原理
(5)Glide(高頻):快取實作原理,流程(linkedHashMap)
(5)ORM資料庫:ROOM,DBFlow,DaoGreen:
使用資料庫和使用檔案快取的區別
(6)MMKV(10家問了一家)
framework/專案/框架/總監級別問題
(1)冷啟動流程,設計哪些行程,
(2)Act,window,View的區別,原始碼介紹下
(3)AMS的作用
(4)sdk設計,你如何實作
(5)埋點sdk,你如何實作:
埋點方法,存盤,上傳,執行緒池,例外等
(6)組件化,模塊化,你是如何實作的,組件通訊如何實作的
(7)插件化(不會,只看了騰訊的shadow),原理
(8)專案介紹,重構,迭代等,問你在專案中做了哪些,遇到了哪些問題,如何解決的?(這塊很重要,要有亮點,如你負責的這個模塊,達到什么效果;或者你的重構,能解決什么痛點;或者你解決的問題,能給公司帶來什么收益等,我按照這三塊分類說的,效果不錯)
(9)你的專案上,性能優化如何實作的,代表的實體說一個,例外如何監控的等
(10)平時如何學習技術的?你和別人比,有哪些強項?(學習能力,產品sense,總結習慣等,要突出亮點,我的亮點就是專案應急能力,學習總結習慣和開源貢獻,或者你的回答,也要將總監向這塊引導,突出你的亮點)
(11)簡歷上寫 有較強的編碼能力和獨立思考能力,注重代碼規范和架構重構,專案上如何體現的?
(12)技術問:我這沒問題了,你有什么要問的嗎
如果一面二面,感覺沒戲了,可以爭取下,說說個人技術能力和優勢
如果大佬/總監/小組長級別終面,可以適當問問技術堆疊,技術之類的問題
HR面試問題
(1)問畢業,作業經歷,專案經歷等,問上家公司作業氛圍,問離職原因,問你的強項和弱點(千萬別說性格上的,性格開朗都不行,只說技術弱點),最好準備好一套說辭,都是有技巧的,小心避坑
(2)問期望薪資:
個人最想說的一塊了,公司股東規定不漲薪,在公司2年多沒漲薪,要高薪很困難,所以好幾家技術面試通過的,最后hr都卡住了,守到云開見明月,多面試幾家,機會總會來,我堅持個人的期望不妥協,終有公司看中我的個人技術能力和人品(5年經驗,折算我的期望漲幅達73%),很感謝新東方給了個人機會,我會努力回報滴!烏拉!
(3)總監也會問/hr也會問:你的個人短期目標和長期目標
(3)還有什么要問的嗎?
hr問的這個這個問題,最好問她擅長的,如人事,薪資,待遇,團建等等
其他面試題(略雜)
(1)kotlin:語法糖等
(2)為什么用kotlin,和java比的優勢?性能優勢?
(3)flutter問了基礎
非科班的突圍歷程和心得
野生程式員的成長經歷:
本人是山東普通一本學歷,機電專業,15年轉行做的andorid開發,作為一個野生程式員,成長歷程比較坎坷,開始靠培訓機構或者個人自學,初級時就能入職互聯網開發,非常困難,初級入職階段,就能淘汰一大批培訓機構
的同學,很幸運自己能實作轉變,很感激幫助我的同學和第一家時經理收留信任,靠著自己2年多的不斷的學習和積累,從一個小白白成長為一個合格工具人,還完成個人薪資翻倍的跳槽,
在第二家公司,也慢慢的技術視野和深度的擴展,能從容應對開發和各種問題,由于公司沒有漲薪制度,所以就有了跳槽的計劃準備,沒想到,這一準備,就是2年時間,靠著總結和積累,跳槽就水到渠成,沒有多少運氣加成,全是踩坑過河,
所以,對科班人來說,我就是最笨的成長,雖然初期的成長慢了些,但是我有我的堅韌性格,成長多遠,多半靠自己,多多灌輸自己點勵志雞湯,多多學習別人的長處,多虛心請教別人的心得和學習習慣,成長也是很快的,
成長心得:
不說廢話,只說關鍵點:
(1)要有技術總結,技術點總結、遇到的坑總結、大技術點專題總結(筆記+代碼示例),整理成筆記,時常翻看(寫博客也需要用筆記先總結好)
(2)有筆記習慣,記錄技術,例外,新技術,復盤總結,日報總結,學習計劃,好的點子等,一切認為可總結的技術點,都做成筆記,后期翻看時,可以增加自己的思考角度維度,為日后做核心崗位做準備,我這個習慣已經保持了2年多,當前能完成跳槽,這個習慣給了我最大的支持,讓我水到渠成,
(3)看原始碼學習,好奇心多一些,當成享受,時間長了,你就自然而然的厲害了,
(4)如果對公司有期望,做事要負責實干,領導的刁難或嚴苛,要學會皮實應對,說不定是扶持你上位的考驗
附 個人跨年面試流程
奉上我最近的集中面試程序
2020-12-24
下午14:00: Apus(2輪技術+hr,hr看不上了)
下午7:00:美團優選 遠程一面(啥都沒問,感覺就他就是為了放松的,之前有兩次不好的簡歷投遞,估計有記錄了)
2020-12-25
下午14:00: 廣州星域資訊科技有限公司(offer 25->23*13,已拒絕)
下午7:00: 探探遠程一面(未過)(問的太細了)
2020-12-28
7點:貨拉拉 遠程(一面已過)
2020-12-29
上午:京東物流 電話面 (一面已過)
下午:小紅書(一面 未過)
2020-12-30
上午:松果出行(一面已過 7天才出結果,六啊)
下午:頭條教育(一面已過)
晚上:寶沃汽車(已過,5天后才告知)
2020-12-31
上午11點:貨拉拉二面(已過)
2021-01-04
下午4點:京東物流二面(已過)
下午7點:貨拉拉三面(已過)
2021-01-05
上午10點半:新東方在線(技術有三面,已過)
下午2點: 頭條 2面(呵呵,為難人,凈問冷門的)
下午4點:寶沃汽車二面(已過)
下午5點: 京東健康1面(已過)
2021-01-06
下午 京東物流(二面 已過)
下午3:00 貨拉拉hr面試 (hr已過)
下午 5點 寶沃汽車測評已過(提交工資流水)
2021-01-07
上午10:30 新東方在線(技術四面 已過,下周約終面)
中午12點:貨拉拉 提供工資流水
下午4點: 京東物流 3面(20分鐘結束,11號給結果通過)
2021-01-09(周六)
下午8點: 松果出行(二面,已過)
2021-01-11
京東物流(hr已過,提交流水記錄和期望薪資郵件)
2021-01-12
下午2點:新東方在線 總監面試(25分鐘,已過)
下午4點:松果出行(hr面試)
下午5點:貨拉拉 電話告知 審批拒絕()
2021-01-14
下午6:30 新東方在線(CTO面試+hrbp期望薪資)
2021-01-15
下午 新東方在線 hrbp定薪資,發offer郵件
下午 松果出行(hr面試,要我去入職,呵呵,薪資都沒談,鬧呢)
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/250709.html
標籤:其他
上一篇:安卓開發學習——day8
