2019年個人秋招

目錄html

秋招正式結束,最後感謝百度給予的承認,真的有種受寵若驚。簡單回顧一下秋招。也給出本身的面經,文章最後列出兩個本身看的資料。java

  • 3月:
    擠出時間去找了幾家實習,在毫無準備的狀況下,由於知道不能出去實習,正是這幾回被按在地上摩擦的面試經歷,讓本身清晰的認識到找工做須要好多好多東西。
  • 9月:
    正式開始秋招,這期間天天都在焦慮中度過,尤爲在字節二面掛收到感謝信,小米二面完未收到恭喜涵,特別是貝殼一輪遊以後本身深深的陷入的自我懷疑,天天味覺不振,每晚都會醒好幾回,人也變得更加消瘦。可是還得繼續,不想面臨一畢業就失業的尷尬局面,9月前半段瘋狂筆試,中下旬瘋狂面試,還記得打破記錄的是一天面了5家,面完人都坐不住了,天天在外面,面試前的緊張,面完趕下一場的疲於奔命,有的時候真的感受好無助,特別是19號那天中午在餐館裏吃了午飯,趴在那睡得那一會,真的想給我個offer,讓我結束秋招吧。
  • 起色:
    9月20日凌晨,像日常同樣,凌晨兩點左右醒來,發現郵箱裏收到了vivo的錄用函,那一刻真的很感動,很晚很晚了,激動得很久才睡着,白天下午就去了簽約溝通會,還送了一個大禮包,真的很感謝。在那以後又收到了歡聚時代的口頭offer,以及oppo的offer,就這樣慢慢的好起來,心情和狀態慢慢好轉,到最後面試百度時,真的很放鬆。
  • 總結一下面試的公司:
    vivo 歡聚時代 oppo 百度 華爲收到offer,美團 海康 小米 4399等消息, 貝殼一面掛,字節二面掛,阿里一面掛,科大訊飛收到offer意向書怎麼又通知沒法進入下一階段,招銀電話面掛,CVTE二面掛,快手、京東筆試不過,滴滴、愛奇藝、小紅書、網易、老虎集團、酷狗、招銀信用卡中心筆試以後無消息,猿輔導、keep面試沒去,很抱歉。
  • 最後:
    真心感謝這個過程當中出現的每個面試官,這個過程雖然很痛苦,可是對本身的積累真的很重要,後面面試中出現了不少內容都獲得了前面面試官的點撥,很是感謝。也感謝那個疲於奔命的本身,即便面試衝突了,哪怕時間錯過了,我也會絕不猶豫的趕過去,也感謝這些公司給了面試機會,特別是vivo和百度。android

    總結:關於秋招總結幾點,
    • 1 心態,被拒絕是不免的,必定要調整好心態,同時面試時適度緊張,想開點,心態是最重要的。
    • 2 基礎,每一個學科的基礎性知識要掌握好,秋招的過程是一個查漏補缺的過程,作好每一面問題的記錄,後來惡補。
    • 3 簡歷,簡歷上寫的東西必定要好好理解透,若是被面試官發現你是真的只是會用,那會很被動,也不用理解很透,只須要了解個大概,核心概念要知道。
    • 4 項目,簡歷上的項目要爛熟於心,最好介紹前要介紹一下應用背景。
    • 5 技巧,從自我介紹開始,就要學會介紹本身擅長的,在回答問題的時候也要學會將面試官引導到本身會的領域。
    • 6 關於手撕代碼,其實現場手撕題目通常不會太複雜,多爲鏈表、數組排序、查找、二叉樹、字符串操做、海量數據操做等,面試官主要考察你的思路、代碼風格等。最好掌握遞歸、動態規劃等思想。若是寫不出來,也就沒有必要一直耗着,有思路說一下也行。

實習

3月19日阿里電話一面

  1. 強引用和弱引用
  2. HashMap實現。
  3. ArrayList和LinkList的區別;
  4. 紅黑樹;
  5. 設計模式;
  6. View的繪製;

體會:c++

  • 說話要有條理,要會組織。
  • 基礎知識要紮實。
  • 要學會看源碼,專一某一個方面的技術,懂得透徹才行!

3月26日騰訊電話一面

  1. 異常,多線程,反射,什麼地方使用,解決了什麼問題!
  2. 泛型,和c++模版的區別,泛型擦除。
  3. activity和service的區別。
  4. activity,fragment,view的區別,何時只能用activity,何時只能用fregment。
  5. 進程保活,爲何程序會死掉。
  6. svn和git的區別。

體會:git

  • 想問題不能過久,不必定要一個具體的答案,重在分析!
  • 基礎,基礎,基礎,平時積累!github

    4月17日華爲面試

  1. StringBuilder和StringBuffer的區別,分別怎麼擴容
  2. 畫項目的一個結構
  3. 項目功能分塊
  4. 廣播分類,分類方式等,有序無序,如何讓一個APP接收另外一個APP指定的廣播。
  5. 六種設計原則,用過哪些
  6. 23種設計模式,用了那些
  7. hashmap實現原理
  8. 活動的四種啓動模式,淘寶頁面的方案
  9. startservice和bindservice的區別
  10. 項目中是否使用異步,併發。
  11. framework結構,畫出來(懵逼)[你結構都不知道,寫出來的東西只是能用,華爲是作手機的,不是作Android的,繼續懵逼]
  12. 如何報心跳
    13.內存泄漏,遇到的,如何處理的。

優酷(時間不記得了)

  1. RecyclerView 緩存機制,緩存多少個,爲何使用RecyclerView
  2. 微信小程序是如何運行起來的。
  3. Gradle如何分模塊編譯。

秋招

8月30日 平安科技

  1. JVM分那幾個部分
  2. 堆內寸和棧內存的區別
  3. 有哪些異常,怎麼處理。
  4. 有哪些樹結構,應用場景
  5. 數據庫索引

9月2日 字節一面

  1. Android 4大組件(英文),及其做用。
  2. 活動的啓動模式和相應活動棧的變化
  3. 自定義view,界面是如何繪製到手機屏幕上的。
  4. HashMap HashTable ConcurrentHashMap的區別。
  5. HashMap中如何得到key的hash值,hashmap的負載因子是否能夠改變。
  6. 時間複雜度和空間複雜度分析。
  7. 手撕字符串反轉(擺手算法)web

    9月5日 字節二面(涼麪)

  8. HTTP狀態碼(1,2,3……開頭的分別表明什麼意思,206瞭解嗎)
  9. HTTPS和HTTP的區別,祕鑰是如何交換的;
  10. 活動的四種啓動模式,及其應用場景,問了singleTop的應用場景,沒回答好(投的android崗,二面惟一的android問題)
  11. get和post的區別,若是參數只是字符串,能夠用get代替post嗎,我說不能,get參數長度受限,面試官:具體限制多少,(不知道)
    4. Java的異常;(我竟然答出除0是不可try的,笨死了)
  12. 瀏覽器輸入網址,經歷了什麼。
  13. DNS解析瞭解嗎(只知道DNS解析是經過域名獲得ip);
  14. HashMap和HashTable的區別,平時項目都使用的誰?(覺得不會再問計算機網絡了,結果……)
  15. TCP和UDP的區別;
  16. 3次握手和4次揮手。
  17. 手撕單鏈表添加,刪除,反轉(比較easy,最後面試官問會不會斷鏈);面試

    9月2日 小米一面

  18. JVM 內存模型,簡單點的堆棧理解
  19. java四種引用在GC的表現
  20. final finally finalize 區別
  21. Http get post
  22. Android 消息機制,線程是如何確保其Looper只有一個的。
  23. ThreadLocal
  24. view繪製,3個函數
  25. Android 事件分發機制,三個函數,以及其中的調用關係。算法

9月4日 小米二面

  1. 手寫字符串轉數字(逐位解析,判斷溢出);
  2. Activity的生命週期函數和表現。
  3. 自定義view相關,其layout_width等屬性如何影響其呈現。
  4. bindService和startServie的區別和各自的應用場景。
  5. HashMap和HashSet的實現。
  6. volatile關鍵字的做用(講到了java內存模型,面試官問我怎麼了解到java內存模型的,我很誠實的說準備面試^~^);使用 volatile 能夠禁止 JVM 的指令重排,保證在多線程環境下也能正常運行。
  7. java代碼在JVM上會亂序,爲什麼(不會)->指令重排列
  8. 幾個線程池的線性個數設置,以及其如何管理生命週期;
  9. 裝箱和拆箱如何實現->valueOf 和 xxxValue(xxx爲相應包裝類型對應的基本數據類型,好比int)
  10. 泛型如何實現;
  11. 項目難點、如何解決。

9月2日 阿里一面

  1. 內存泄露 Android 層面,Java層面的緣由。
  2. 項目中的Thread如何管理,有沒有封裝相應的工具內。
  3. ArrayList HashMap的區別。
  4. 棧和隊列的區別,分別用數組和鏈表實現隊列,比較區別。
  5. 有A、B兩個二叉樹,判斷A樹是不是B樹的一個子樹。
  6. 如何實現雙向循環鏈表,Android中雙向循環鏈表的使用。
  7. 有哪些排序,選擇一個排序,介紹他的實現思想,如何分析排序效率(我答了時間複雜度和空間複雜度,繼續追問,用空間換取時間,給了一個場景,若是用戶的手機內存比較小512,若是用空間太多,會有什麼影響)。
  8. TCP和UDP的區別,QQ聊天,視頻,遊戲,那個對可靠性需求高,那些用了TCP。
  9. Android中兩種廣播 靜態廣播和動態廣播,有什麼區別?(明明常常用,也知道,當時竟然腦殼怎麼忽然就想不起來了——常駐和很是駐的區別)。
  10. Android用到那些佈局,(答了常常用的線性和相對,繼續追問,那種會效率高點……)
  11. Thread AsyncTask IntenService 有什麼區別。
  12. 是否用過Android的Sqlite,(學習用過,就沒追問,估計知道我不會)
  13. Android xml佈局三種複用的方式 include,merge,ViewStub的區別(我只知道前兩種,也沒用實際用過,沒答上來)。

9月10日 招銀電話一面

  1. 類加載,在何時加載一個類
  2. 類的初始化
  3. ThreadLocal
  4. Android中的進程通訊
  5. 消息機制,爲何一個線程要有一個looper,不能共享嗎
  6. Service運行在單獨的進程仍是UI進程
  7. webview,混合開發
  8. IntentService
  9. Binder參數限制

9月11日 貝殼一面(涼麪)

  1. px sp dp 的區別
  2. java內存模型,volatile關鍵字
  3. long double int 安全性(大意是多線程操做那個類型的變量是安全的),long double是如何存儲的。
  4. 數據庫索引,B+樹葉子節點存儲的信息
  5. 彙集索引和非彙集索引
  6. 海量數據排序。
  7. 指令重排列問題。
  8. 垃圾回收算法。
  9. 可回收分析,new一個對象是否可回收。

9月16日 海康威視一面

  1. 活動生命週期,活動的啓動模式。
  2. 服務的啓動方式,屢次startService若是stop問題。
  3. 四大組件
  4. 爲什麼不能在子線程中更新UI問題。
  5. 項目。
  6. 說一個你關注的公衆號中的一篇文章。
    (剩下一些記不清了,整體較爲基礎)sql

    9月17日 華爲一面

  7. 項目
  8. 活動的四種啓動模式。
  9. C++ 申請內存的方式,如何釋放內存(我只答了析構函數,面試官還提示了delete)
  10. 四大組件
  11. android中java和通常的java有何區別(答得比較差,說了google針對android封裝了許多東西,好比說AsyncTask等,而後android運行在Dalvik虛擬機,並非普通的jvm上,同時字節碼也不一樣,巴拉巴拉巴拉)
  12. 項目中是如何優化ZXing二維碼掃描的。
  13. java中的多線程池。
  14. 手撕一個android中多線程實現貪吃蛇的邏輯,在線程中得到上下左右方向,並更新UI(這裏其實主要考察的是線程的使用,以及android中不能在子線程更新UI等)。

    9月17日 華爲二面

  15. 先介紹項目。
  16. 手撕一個字符串問題,在字符串a中找到字符串b第一次出現的位置,以及出現了幾回(我悶頭一想這不是kmp嗎,結果寫了後,面試官說,你直接substring不就好了,些什麼kmp,那一刻,以爲本身掛了)
  17. 說說項目中如何處理數據庫併發的。
  18. 如何解決sql注入攻擊(我說了參數綁定,面試官彷佛不怎麼滿意)。
  19. 內存泄露
  20. 如何優化二維碼掃描(和一面面試官一樣的問題)
  21. java中8大基本數據類型。
  22. java泛型
    (還有些不大記得了)

    9月17日 華爲三面

  23. 先介紹項目,每個都介紹,面試官對第一個比較感興趣,叫我仔細給介紹,而後還和我探討其中一些硬件方案。
  24. 有什麼樂趣,我說看中超,面試官說我心臟很強大啊。
  25. 問了一下android中四大控件,不是說三面就是聊聊人生嗎。
  26. 活動的啓動模式,平時怎麼使用的。
    (其餘就是一些人生話題了)

    9月17日 美團一面

  27. 項目,每個項目,感受美團一面全程挖項目。
  28. 畫一下MVP模式,介紹MVP帶來的好處。
  29. 手撕兩個數組合併成一個數組,保持有序,寫出空間和時間複雜度。
  30. 如何優化二維碼掃描。
  31. android的靜態廣播和動態廣播
    大部分在聊項目,就項目中的一些點作了一些詢問。

    9月17日 美團二面

  32. 介紹項目
  33. 項目難點
  34. 微信小程序是如何運行起來的(我只說了從服務器上下載程序包,而後面試官問什麼格式,我不知道,而後面試官就說其實就是一個zip,而後跑起來的是H5,這個介紹對我而言很是重要,由於百度面試管也一樣問了我)。
  35. 問我作了不少上層應用的開發,那對算法和數據結構還掌握多少,我說數據結構還行,算法有點薄弱,而後他說那就寫個算法吧,懵逼,寫個n的階層吧,一下以爲面試管又在逗我,最後寫完,他說我只是看看你還記得遞歸不,我........
  36. 問了android其餘的開發框架,以及新的開發語言Kotlin等等。
  37. 進程間通訊方式
  38. 內存溢出
  39. java內存模型
  40. GC
  41. tcp和udp

9月17日 vivo技術面

  1. 介紹項目
  2. android的消息機制
  3. 廣播分類,靜態廣播和動態廣播的區別。
  4. android中的服務,能夠在服務中作耗時操做嗎。
  5. 大家是如何作進程保活的,介紹一些oom值。
  6. 將一個數組分紅兩部分,使其和相接近,我說了和接近就是作差接近於0,而後採用遞歸嘗試着將一個數放到左邊右邊,面試官說那若是最後一個數很大呢,不會了……其實這個題應該用dp,採用揹包問題思想。
  7. 聊了約瑟夫環問題,1-50我的,圍成一圈,報數每9個出去,最後一個是誰,我說用循環單鏈表。
    還有一些記不清了。

    9月18日 歡聚時代一面

  8. 聊項目
  9. android 活動的生命週期和啓動模式。平時用了哪些
  10. android的消息機制
  11. android的view繪製,
  12. android 的事件分發,三個主要的函數。
  13. 內存泄露
  14. 如何找到界面卡頓(當時不知道)
  15. java中四種引用,new一個對象會被回收嗎
  16. GC算法
  17. 手撕 找到一個鏈表的中間元素,找到倒數第k個,有什麼高效的操做,沒想出來。
  18. tcp和udp
  19. 如何優化二維碼掃描
  20. 如何作的進程保活

    9月18日 科大訊飛一面

  21. 活動的生命週期。
  22. 項目
  23. 科大訊飛的語音合成你使用了,有什麼問題,答了一些多音字讀不許確。
  24. 介紹了OCR,介紹了Tesseract。還問我如今若是叫我繼承一個OCR,識別手寫體須要多久,我說很快,由於不須要訓練數據集。
    科大訊飛可能在android端沒什麼大的投入,因此聊了一些其餘的問題,也不怎麼記得了。二面在技術上就畫了一下後臺的項目分層結構。

    9月18日CVTE電話面試

  25. 進程保活和活動拉起,簡歷有寫
  26. 如何優化二維碼掃描,還聊到了微信的二維碼掃描。
  27. 你怎麼看C++和java,巴拉巴拉巴拉
  28. java泛型
  29. java四種引用
  30. GC算法
  31. volatile關鍵字
  32. synchronized和reetrankLock
  33. awit和sleep的區別
  34. 爲何迅雷服務器下載會比瀏覽器快一點(叫我放開思想一想一下,我說可能迅雷中間通過了他本身的服務器)
  35. https,對稱加密和非對稱加密
  36. 線程池和關鍵參數。
  37. 實時性要求很高的是遊戲是tcp仍是upd。

    9月19日 百度一面

  38. 從新說一遍筆試題中的SparseArray和Hashmap的區別。
  39. 介紹項目
  40. 二維碼掃描如何優化
  41. Camera如何調焦
  42. 重載和重寫的區別
  43. 如何在子類中調用父類的方法
  44. 介紹項目中的東西,將界面的結構畫出來,特別是層級關係。
  45. RecyclerView和ListView的區別
  46. android的消息機制,Handler的構造函數有傳入Looper的嗎,Looper.prepare是幹什麼的。
  47. 開發一個微信小程序的過程是怎樣的,微信小程序是如何運行起來的(此時真的很感激美團二面面試官)
  48. js是如何調用java代碼的,我說了我用過WebView寫過混合開發,懂一丟丟。
  49. 寫佈局文件時須要注意什麼?如何優化。
  50. 微信小程序是基於什麼運行的,我說了H5,面試官說其實就是一個瀏覽器跑了一個本地的網頁,也就是H5。

    9月19日 OPPO技術面

  51. 介紹項目
  52. 聊項目,面試官用過ZXing,因此對我用的ZXing以及優化這塊很是感興趣,還說二維碼識別其實只須要部分信息就能夠。再問我有沒有從bitmap上下功夫,我說失敗了。
  53. 什麼是ANR
  54. 四大組件
  55. 廣播的種類,以及使用。
  56. android的消息機制。
  57. view的繪製
  58. 內存泄露,使用什麼檢查,我說LeakCanary,他說LeaksCanary只能檢查一些組件啥的,並不全面。
  59. GC算法,GC Root中存放了那些信息。
  60. 標記-整理如何實現。

    9月19日 歡聚時代二面

    主管面,沒有多少技術問題,大多關注在項目上。
  61. 項目,難點,給面試官看了寫的微信小程序。
  62. 二維碼掃描優化如何作的。
  63. 先後臺是如何分工的。
  64. 在培訓用戶中的難點是什麼。
  65. 以爲把對用戶培訓的時間拿來學習算法和數據結構是否是要好不少?
  66. 工做地點等等……

    9月19日 CVTE視頻面(涼麪)

    1 . 介紹項目
  67. 項目中用到了什麼設計模式,打了單例模式和觀察者模式
  68. 寫一個觀察者模式,寫得很差,連觀察者和被觀察者都沒有搞清楚。
  69. 介紹一下MVP,MVVM
  70. 介紹一下2018年google開發者大會上提出的AAC(徹底不知道,哎)
  71. java中的四種引用
  72. Android各個版本的新特性。
  73. LeaksCanary原理,還有用過其餘的內存泄漏檢測工具嗎
  74. okttp源碼瞭解嗎
    其餘的不記得了

    9月20日 百度二面

    (這是我遇到最新穎的面試,面試官拋出概念,我本身講,能講多少講多少)
  75. 深挖簡歷上的各類瞭解。
  76. 講一下okttp,那些關鍵的對象,同步和異步的訪問函數。client是那個client
  77. ButterKnift如何使用,須要注意那些問題
  78. DataBinding如何使用,瞭解其實現原理嗎,你都不用MVVM,你用DataBinding幹什麼。
  79. 講一下AIDL,說說進程間通信方式。
  80. 除了GPS定位還有什麼定位,我說網絡定位,問我如何實現,我說不知道,他開導說手機鏈接着什麼嘛,我說基站,而後一通巴拉巴拉,不知道本身說了啥。
  81. 講一下二維碼掃描的優化
  82. 說一下如何作到進程保活的,什麼是oom值,以及JobScheduler
  83. 學過C++嗎
  84. jvm內存分區,棧溢出發生在那
  85. 手撕 從先序遍歷和中序遍歷復原原來的二叉樹
  86. 手撕 快排 插入排序
  87. https的機制,加密,證書祕鑰交換等。
  88. android 的消息機制,
  89. view繪製
  90. 事件分發流程,攔截函數叫什麼,用沒用過事件分發。
  91. 學android看了那些書,《第一行代碼》有多少頁,第一行代碼和開發者探祕有那些內容。
  92. 佈局優化。

9月22日 百度三面

主管面,一半人生一半技術吧,最後介紹了20多分鐘目前他所在的部門所在作的東西,真的超乎了我這種菜雞的想像啊。

  1. 聊項目,很細很細
  2. 很關注二維碼掃描優化這塊,有沒有在bitmap上下功夫。
  3. 爲何作進程保活和活動拉起
  4. 爲何地圖用百度的,語音合成用科大訊飛的,我說作了一些比較,發現百度的在某些多音字上讀不正確。
    其餘的就是一些人生話題,三面感受真的很nice。

資料

java 計算機網絡 操做系統等
Android相關
大神整理的劍指Offer

相關文章
相關標籤/搜索