在上一篇實習隨筆| 週記(五)提過由於實習忙碌和秋招提早批將盡而焦灼和苦惱,因而在各類思想鬥爭和考慮後,終於下定決心在項目新版本上線之際辦理了離職,並開始全心全意投入秋招。git
原覺得此行必將艱難,也作好了持久戰的準備,沒曾想一路出奇的順利,如今不打算再找了,終於能夠好好填舊坑寫總結了!面試
1.校招日曆算法
在美團實習的最後一週項目在提測,相比開發階段着實輕鬆了很多,因此開始改簡歷、投簡歷和複習,複習內容主要是我的博客和春招總結的筆記。數據庫
不過各廠子簡歷處理速度令我始料不及,在緊接的下一週就被各類面試狂轟濫炸,這波操做來得快去的也快,最終經過BAT、vivo、愛奇藝和一點資訊的所有面試流程,自此整個秋招以面試0error完美收官。編程
中途發生個烏龍,在牛客給頭條hr發過簡歷,結果居然誤進了社招池,還發來了面試邀約......差點就去應聘Android高級工程師了emmm設計模式
如下就是從開始準備到等到offer整個秋招日曆表:數組
日期 | 具體事宜 |
---|---|
8.6(週一) | 修改簡歷、實習轉正口頭offer |
8.7~8.9 | 完成簡歷投遞、複習 |
8.10(週五) | 離職辦理 |
收到vivo的面試通知 | |
8.11(週六) | 網易筆試 |
8.13(週一) | 阿里一面:電話40min |
8.14(週二) | 收到百度、愛奇藝、頭條的面試通知 |
8.15(週三) | 百度一面:視頻35min |
阿里二面:電話20min | |
收到一點資訊的面試通知 | |
vivo一面:視頻25min | |
8.16(週四) | 百度現場面:二面60min、三面30min |
收到網易的面試通知(放棄) | |
vivo hr面:視頻20min | |
8.17(週五) | 阿里三面:電話30min |
收到騰訊的面試通知 | |
8.18(週六) | 一點資訊現場面:一面40min、二面50min、三面20min |
騰訊一面:電話35min | |
8.19(週日) | vivo線下交流會 |
8.20(週一) | 愛奇藝一面:現場70min |
一點資訊hr面:電話15min | |
8.21(週二) | 收到百度面試經過郵件+文化測評 |
8.22(週三) | 愛奇藝二面:視頻30min |
收到vivo錄用意向書 | |
8.23(週四) | 阿里hr面:視頻40min |
8.28(週二) | 騰訊二面:電話20min |
8.29(週三) | 愛奇藝三面:視頻30min |
收到快手的面試通知(放棄) | |
8.30(週四) | 騰訊hr面:視頻15min+主管口頭offer |
8.31(週五) | 一點資訊hr溝通意向 |
9.1(週六) | 收到阿里錄用意向書 |
9.7(週五) | 愛奇藝hr溝通意向 |
9.12(週三) | 百度hr溝通意向 |
收到騰訊錄用意向書 |
彙總:面試部門及所有流程緩存
- 杭州/阿里/數據技術與產品部:2輪技術面+交叉面+hr面
- 深圳/騰訊/OMG/騰訊視頻:2輪技術面+hr面
- 北京/百度/百度APP研發部:3輪技術面+文化測評
- 北京/愛奇藝:3輪技術面
- 深圳/vivo:1輪技術面+hr面+線下交流會
- 北京/一點資訊:3輪技術面+hr面
2.實習總結安全
兩個月的實習生活轉瞬即逝,也有幸獲得部門老大的確定和對留用的承認。本節對這段短暫但充實的實習生活作個簡短的總結,算是給「實習隨筆」系列文章作個收尾(想看面經的可跳過此節)。性能優化
實習單位:北京/美團/新零售事業羣/閃購事業部/賦能業務組
a.工做總結
b.學習總結
c.收穫和成長
這是我第一次走出校園踏入社會,於我而言意義非凡,因此很是珍惜每一個在美團的日子。
總之在這裏收穫的不只有知識和技術,還有見識和人情味,我超喜歡這裏的~
和實習前對本身的指望相比,現已完成大部分的計劃,也有部分未達到預期:
3.題庫大全
以前說過個人複習範圍無非是我的技術博客還有整理的筆記,考慮到筆記是手寫版不利於保存,因此打算從新整理並放到網上,時間緣由這裏先列出面試問題,題解詳見2019校招Android面試題解1.0
固然,我認爲看面經主要是爲了查缺補漏,本身也要有必定的知識儲備和學習體系,而不是臨時抱佛腳、試圖經過背題背答案方式應付面試,只有本身真學會的東西才能侃侃而談,更有自信。
(注:部分重點有文字連接,表示有具體的文章講解)
a.Android
Q:說下Activity的生命週期?
Q:onStart()和onResume()/onPause()和onStop()的區別?
Q:Activity A啓動另外一個Activity B會回調哪些方法?若是Activity B是徹底透明呢?若是啓動的是一個Dialog呢?
Q:談談onSaveInstanceState()方法?什麼時候會調用?
Q:onSaveInstanceState()與onPause()的區別?
Q:如何避免配置改變時Activity重建?
Q:優先級低的Activity在內存不足被回收後怎樣作能夠恢復到銷燬前狀態?
Q:說下Activity的四種啓動模式?(有時會出個實際問題來分析返回棧中Activity的狀況)
Q:談談singleTop和singleTask的區別以及應用場景
Q:onNewIntent()調用時機?
Q:瞭解哪些Activity啓動模式的標記位?
Q:如何啓動其餘應用的Activity?
Q:談一談Fragment的生命週期?
Q:Activity和Fragment的異同?
Q:Activity和Fragment的關係?
Q:什麼時候會考慮使用Fragment?
Q:談一談Service的生命週期?
Q:Service的兩種啓動方式?區別在哪?
Q:一個Activty先start一個Service後,再bind時會回調什麼方法?此時如何作才能回調Service的destory()方法?
Q:Service如何和Activity進行通訊?
Q:用過哪些系統Service?
Q:是否能在Service進行耗時操做?若是非要能夠怎麼作?
Q:AlarmManager能實現定時的原理?
Q:前臺服務是什麼?和普通服務的不一樣?如何去開啓一個前臺服務?
Q:是否瞭解ActivityManagerService,談談它發揮什麼做用?
Q:如何保證Service不被殺死?
Q:廣播有幾種形式?什麼特色?
Q:廣播的兩種註冊形式?區別在哪?
Q:ContentProvider瞭解多少?
Q:Android中提供哪些數據持久存儲的方法?
Q:Java中的I/O流讀寫怎麼作?
Q:SharePreferences適用情形?使用中須要注意什麼?
Q:瞭解SQLite中的事務處理嗎?是如何作的?
Q:使用SQLite作批量操做有什麼好的方法嗎?
Q:若是如今要刪除SQLite中表的一個字段如何作?
Q:使用SQLite時會有哪些優化操做?
Q:Android中進程和線程的關係?區別?
Q:爲什麼須要進行IPC?多進程通訊可能會出現什麼問題?
Q:什麼是序列化?Serializable接口和Parcelable接口的區別?爲什麼推薦使用後者?
Q:Android中爲什麼新增Binder來做爲主要的IPC方式?
Q:使用Binder進行數據傳輸的具體過程?
Q:Binder框架中ServiceManager的做用?
Q:Android中有哪些基於Binder的IPC方式?簡單對比下?
Q:是否瞭解AIDL?原理是什麼?如何優化多模塊都使用AIDL的狀況?
Q:MotionEvent是什麼?包含幾種事件?什麼條件下會產生?
Q:scrollTo()和scrollBy()的區別?
Q:Scroller中最重要的兩個方法是什麼?主要目的是?
Q:談一談View的事件分發機制?
Q:如何解決View的滑動衝突?
Q:談一談View的工做原理?
Q:MeasureSpec是什麼?有什麼做用?
Q:自定義View/ViewGroup須要注意什麼?
Q:onTouch()、onTouchEvent()和onClick()關係?
Q:SurfaceView和View的區別?
Q:invalidate()和postInvalidate()的區別?
Q:瞭解哪些Drawable?適用場景?
Q:mipmap系列中xxxhdpi、xxhdpi、xhdpi、hdpi、mdpi和ldpi存在怎樣的關係?
Q:dp、dpi、px的區別?
Q:res目錄和assets目錄的區別?
Q:Android中有哪幾種類型的動畫?
Q:幀動畫在使用時須要注意什麼?
Q:View動畫和屬性動畫的區別?
Q:View動畫爲什麼不能真正改變View的位置?而屬性動畫爲什麼能夠?
Q:屬性動畫插值器和估值器的做用?
Q:Activity、View、Window三者之間的關係?
Q:Window有哪幾種類型?
Q:Activity建立和Dialog建立過程的異同?
Q:談談消息機制Hander?做用?有哪些要素?流程是怎樣的?
Q:爲何系統不建議在子線程訪問UI?
Q:一個Thread能夠有幾個Looper?幾個Handler?
Q:如何將一個Thread線程變成Looper線程?Looper線程有哪些特色?
Q:能夠在子線程直接new一個Handler嗎?那該怎麼作?
Q:Message能夠如何建立?哪一種效果更好,爲何?
Q:這裏的ThreadLocal有什麼做用?
Q:主線程中Looper的輪詢死循環爲什麼沒有阻塞主線程?
Q:使用Hanlder的postDealy()後消息隊列會發生什麼變化?
Q:Android中還了解哪些方便線程切換的類?
Q:AsyncTask相比Handler有什麼優勢?不足呢?
Q:使用AsyncTask須要注意什麼?
Q:AsyncTask中使用的線程池大小?
Q:HandlerThread有什麼特色?
Q:快速實現子線程使用Handler
Q:IntentService的特色?
Q:爲什麼不用bindService方式建立IntentService?
Q:線程池的好處、原理、類型?
Q:ThreadPoolExecutor的工做策略?
Q:什麼是ANR?什麼狀況會出現ANR?如何避免?在不看代碼的狀況下如何快速定位出現ANR問題所在?
Q:加載圖片的時候須要注意什麼?
Q:LRU算法的原理?
Q:Android中緩存更新策略?
Q:項目中如何作性能優化的?
Q:瞭解哪些性能優化的工具?
Q:佈局上如何優化?列表呢?
Q:內存泄漏是什麼?爲何會發生?常見哪些內存泄漏的例子?都是怎麼解決的?
Q:內存泄漏和內存溢出的區別?
Q:什麼狀況會致使內存溢出?
開源框架(略)
谷歌新動態
Q:是否瞭解和使用過谷歌推出的新技術?
Q:有了解剛發佈的Androidx.0的特性嗎?
Q:Kotlin對Java作了哪些優化?
b.Java
Q:面向對象編程的四大特性及其含義?
Q:String、StringBuffer和StringBuilder的區別?
Q:String a=""和String a=new String("")的的關係和異同?
Q:Object的equal()和==的區別?
Q:裝箱、拆箱什麼含義?
Q:int和Integer的區別?
Q:什麼是內部類?有什麼做用?靜態內部類和非靜態內部類的區別?
Q:final、finally、finalize()分別表示什麼含義?
Q:重寫和重載的區別?
Q:抽象類和接口的異同?
Q:爲何匿名內部類中使用局部變量要用final修飾?
Q:Object有哪些公用方法?
Q:Java集合框架中有哪些類?都有什麼特色
Q:集合、數組、泛型的關係,並比較
Q:ArrayList和LinkList的區別?
Q:ArrayList和Vector的區別?
Q:HashSet和TreeSet的區別?
Q:HashMap和Hashtable的區別?
Q:HashMap在put、get元素的過程?體現了什麼數據結構?
Q:如何解決Hash衝突?
Q:如何保證HashMap線程安全?什麼原理?
Q:HashMap是有序的嗎?如何實現有序?
Q:HashMap是如何擴容的?如何避免擴容?
Q:hashcode()的做用,與equal()有什麼區別?
Q:開啓一個線程的方法有哪些?銷燬一個線程的方法呢?
Q:同步和非同步、阻塞和非阻塞的概念
Q:Thread的join()有什麼做用?
Q:ReentrantLock和synchronized的區別?
Q:synchronized和volatile的區別?
Q:synchronized同步代碼塊還有同步方法本質上鎖住的是誰?爲何?
Q:sleep()和wait()的區別?
Q:是否瞭解Java1.x的特性嗎?
Q:談談對面向過程編程、面向對象編程還有面向切面編程的理解
c.計算機網絡
Q:五層協議的體系結構分別是什麼?每一層都有哪些協議?
Q:爲什麼有MAC地址還要IP地址?
Q:TCP和UDP的區別?
Q:擁塞控制和流量控制都是什麼,二者的區別?
Q:談談TCP爲何要三次握手?爲何要四次揮手?
Q:播放視頻用TCP仍是UDP?爲何?
Q:瞭解哪些響應狀態碼?
Q:get和post的區別?
Q:Http1.0、Http1.一、Http2.0的區別?
Q:HTTP和TCP的區別?
Q:HTTP和HTTPS的區別?
Q:HTTP和Socket的區別?
Q:在地址欄打入http://www.baidu.com會發生什麼?
d.JVM
Q:談談垃圾回收機制?爲何引用計數器斷定對象是否回收不可行?知道哪些垃圾回收算法?
Q:Java中引用有幾種類型?在Android中經常使用於什麼情景?
Q:工做內存和主內存的關係?在Java內存模型有哪些能夠保證併發過程的原子性、可見性和有序性的措施?
Q:JVM、Dalvik、ART的區別?
Q:Java中堆和棧的區別?
e.操做系統
Q:操做系統中進程和線程的區別?
Q:死鎖的產生和避免?
f.數據結構&算法
Q:怎麼理解數據結構?
Q:什麼是斐波那契數列?
Q:迭代和遞歸的特色,並比較優缺點
Q:瞭解哪些查找算法,時間複雜度都是多少?
Q:瞭解哪些排序算法,並比較一下,以及適用場景
Q:快排的基本思路是什麼?最差的時間複雜度是多少?如何優化?
Q:AVL樹插入或刪除一個節點的過程是怎樣的?
Q:什麼是紅黑樹?
Q:100盞燈問題
Q:老鼠和毒藥問題,加個條件,必需要求次日出結果
Q:海量數據問題
Q:(手寫算法)二分查找
Q:(手寫算法)反轉鏈表
Q:(手寫算法)用兩個棧實現隊列
Q:(手寫算法)多線程輪流打印問題
Q:(手寫算法)如何判斷一個鏈有環/兩條鏈交叉
Q:(手寫算法)快速從一組無序數中找到第k大的數/前k個大的數
Q:(手寫算法)最長(不)重複子串
g.設計模式
Q:如何理解生產者消費者模型?
Q:是否能從Android中舉幾個例子說說用到了什麼設計模式?
Q:裝飾模式和代理模式有哪些區別?
Q:實現單例模式有幾種方法?懶漢式中雙層鎖的目的是什麼?兩次判空的目的又是什麼?
Q:談談了解的設計模式原則?
h.數據庫
Q:數據庫中的事務瞭解嗎?事務的四大特性?
Q:如何理解數據庫的範式?
i.hr問題
Q:請簡單的自我介紹一下
Q:談談項目經歷,爲何會作,怎麼作的,遇到的難點?
Q:談談實習經歷,作了什麼,收穫有哪些?
Q:談談學習Android的經歷,有哪些學習方法和技巧?
Q:是否會考研?/爲什麼不保研?
Q:成績怎麼樣?獎學金狀況?
Q:學過哪些課程?那門課印象最深入/最有意義/學的最好/最不喜歡?爲何?
Q:近x年的職業規劃?
Q:爲何想來咱們公司?/爲什麼不轉正留在xx?
Q:對公司/部門是否有了解?
Q:爲什麼會選擇作技術?/對女生作開發的見解?
Q:學習生活中遇到什麼挫折,如何解決的?
Q:還投過那些公司,進展如何?如何xx和xx都給你發offer會如何選擇?
Q:家是哪裏的?是獨生子女嗎?從小的家庭環境如何?
Q:日常有哪些興趣愛好?大學參加了哪些校園活動?
Q:有男/女友嗎?將來有什麼規劃?
Q:評價一下本身的優缺點?/用x個詞形容你本身。/別人都是怎樣評價你的?
Q:以爲本身博客寫的最好的文章是什麼?爲何?
Q:以爲本身的優點是什麼?
Q:如何看待加班?
Q:意向工做城市是哪?/是否會考慮在xx發展?
Q:對於薪酬有什麼想法?
Q:有什麼問題想要問我?
j.項目相關、實習相關技術問題
(略)
Q:使用那些版本控制工具?Git和SVN的區別?
(持續更新...)
4.一點感悟
其實到如今還以爲一切不太真實,沒想到已然結束了令我心驚膽戰許久的秋招,回望過去,不禁得感慨,大概真的是越努力越幸運吧。
從最開始個人目標就很明確,並且一路腳踏實地,未曾動搖,用一年多的時間來積累資本豐滿簡歷,學基礎、寫博客、作項目、去實習,也不忽視在校的學業,成績一直很穩定,惟獨沒什麼競賽和論文,由於大學前些年一直沉迷於培養興趣愛好,各處舞蹈排練和比賽,也算是大學裏最豐富多彩的一段時光吧。
固然我深知如今不過是暫且告一段落,前方依舊任重而道遠,要學的還有不少,因此加油吧丫頭!