1. 程式人生 > >2017 暑期實習校園招聘(Java後臺開發方向)面經分享

2017 暑期實習校園招聘(Java後臺開發方向)面經分享

分享一下我這兩個月裡找暑期實習過程中記錄總結的面試經驗吧,希望能對大家有所幫助。

  1. 本人研二,電子科學與技術專業,本科電子資訊科學與技術專業,有三個多月的java開發實習經驗,暑期實習投遞的是Java研發工程師/後臺開發工程師職位。程式語言熟悉情況以Java為主,熟悉Spring和MyBatis等框架,會用maven、git等工具。演算法基礎薄弱,Java基礎紮實。
  2. 面試經驗包括 阿里巴巴、京東、騰訊、搜狗、搜狐、百度、小米、去哪兒網這幾家公司。
  3. 電話面試、現場面試和視訊面試都是回憶版,不怎麼完整。所以問題少的並不一定是問的少
  4. 基本各家企業都有安排筆試,筆試主要是在賽碼網和牛客網上進行。筆試有難有易,主要是基礎知識選擇題加程式設計演算法題
  5. 面試題有些我沒有答上來,有些沒有答對,所以我的回答就不貼出來了,基本只要百度查閱一下就會有詳細答案

公司1:阿里巴巴

result:二面跪

阿里巴巴的電話面試,一面聊得還算比較開心,二面就徹底失敗,面試官問的都沒咋聽說過,立馬跪。

  1. 一面
    1. 自我介紹
    2. 做過哪些專案?怎麼實現的?
    3. 藍芽自動配對怎麼實現的?
    4. 公司整體架構?資料來源流程?你做了啥?
    5. 後臺系統使用什麼技術實現的?
    6. spring mvc和struts mvc的區別
    7. 抽象類和介面的區別?
    8. 覆蓋和過載
    9. 程序和執行緒的區別
    10. 執行緒有哪些狀態
    11. 如何建立執行緒?
    12. wait和sleep的區別
    13. 集合有那幾種?list和set的區別?
    14. hashmap的實現,衝突,初始容量和載入因子?怎麼擴容?
    15. 如何取出hashmap中的value存入list中?
    16. spring的aop和Ioc講講
    17. 快速排序怎麼實現的?
    18. 資料庫索引為什麼用B樹?原理
    19. 資料庫的鎖有哪幾種?語句怎麼實現
    20. 資料庫分頁查詢
    21. 資料庫的搜尋引擎
    22. tcp和udp的區別
    23. 在公司實習你學到了啥?工作方面和技術方面
    24. 你有沒有繼續研究新接觸到的技術?
    25. 你有什麼學習方法嗎?
    26. 你在實習的時候最大的收穫?
    27. 你的部落格都寫了啥?值得說說的。
  2. 二面
    1. 自我介紹
    2. shixi最大的收穫
    3. 專利
    4. JDK8和之前的優化
    5. JDBC是單例還是多例
    6. JDBC和MyBatis
    7. 布隆過濾器
    8. ThreadLocal
    9. Atomic關鍵字
阿里總結:阿里的職位是Java研發工程師,而且聽聞阿里確實比百度和騰訊有更多的地方用Java來開發後臺。所以,感覺阿里其實面試官的水平很好,能夠全面完整的考察每一個應聘者,二面掛,只能說明自己的實力確實菜了點。
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
公司2:京東result:拿到Offer京東現場面試,總共跑了3趟。全程都比較順暢,聊天聊得愉快。
  1. 初面
    1. 瀏覽器中輸入www.jd.com之後都發生了什麼?
    2. 說說事務吧,事務的四大特性,四大隔離級別
    3. 說說spring吧
    4. 寫個設計模式吧(單例除外)
    5. 寫個排序演算法吧
    6. 什麼因素會影響到你選擇不同種類的排序演算法
    7.  一個庫存變數,多個執行緒需要操作,如何保證正確性?
    8. 一臺機器壓力太大了,又給你分配了5臺機器,你如何使用這些機器?
    9. 建立100個執行緒,如何使得這100個執行緒幾乎同時啟動?
  2. 複試
    1. sql語句
      兩個比較器
      以後的定位
      阿里搶月餅事件的看法
      聯調,對方沒時間
  3. HR面試
    1. 什麼時間來shixi,shixi多久?
    2. 你的性格
    3. 你的業餘愛好
    4. 為什麼選擇jd
    5. 現在有offer嗎
京東總結:京東招聘的職位也是Java研發工程師,所以2個面試官都是搞java開發的。京東的問題感覺不算太難。------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
公司3:騰訊result:一面跪騰訊現場面試,面試官應該是搞C++後臺開發的,與java相關的一個不問,隨便問了幾個就打發我走了。(不服)一面
  1.  分散式知識spark
  2. 布隆過濾器
  3. 合併有序連結串列
  4. KMP演算法
  5. having的用法,和where的區別
  6. mysql和sqlserver的區別有哪些
騰訊總結:騰訊的職位是:後臺開發工程師,那這就不好辦了,你的面試官很有可能是搞C++開發的,聊起來特別費勁,因為自己最擅長的是java呀,面試官一個java相關的都不聊。聊聊演算法等其他知識,那指定跪。。。------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------公司4:搜狗result:一面跪搜狗面試,答得一般般,嘮嗑倒是不彆扭,就是答得一般般,藉口二面面試官在開會,打發我走了。一面
  1. 單例模式和註解單例模式區別
  2. 單鏈表反轉
  3. 多執行緒包concurrent
  4. kafka分割槽
  5. maven的打包命令
  6. git完全撤銷
  7. 記憶體調優工具
  8. 記憶體洩露和記憶體溢位
  9. 模板模式
  10. 拆箱裝箱
  11. 控制反轉
  12. AOP的兩種實現
  13. hashmap擴容過程
  14. mybatis中#和$的區別?危險注入問題
搜狗總結:不看簡歷,他們需要什麼技術,就問你什麼技術。。。------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------公司5:去哪兒網result:拿到Offer 一面:
  1. 專案相關,講講
  2. 資料儲存結構有哪些?
  3. currentHashMap和HashMap的區別
  4. 解決hash衝突的方法有哪些?
  5. HashMap中如何解決hash衝突
  6. 資料庫SQL語句
  7. limit的使用相關
  8. Java中的異常分類
  9. 說說Spring
  10. 說說MyBatis的使用
  11. JVM記憶體管理和回收機制
  12. 演算法題:輸入一組數。拼接成一個最大的數輸出!!!
二面:
  1. 滑動視窗
  2. 單鏈表有環推導公式
  3. LRU演算法,最近被使用演算法,使用連結串列實現一個,
  4. 最後使用了
  5. 實現
  6. 資料庫索引作用,實現的資料結構,畫出B+樹
  7. 事務的作用是什麼?答:保證資料的一致性
  8. 介面和抽象類的區別
  9. 布隆過濾器
  10. linux相關命令
  11. 程序之間如何通訊?
  12. 程序和執行緒的區別
  13. 執行緒是否越多越好?資源和記憶體的問題考慮
  14. 執行緒是否有獨佔的資源?有,threadlocal變數
  15. 專業相關問題,以後的方向

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------公司6:搜狐汽車result:逗逼公司逗逼公司,等了快一個小時,HR是個2逼,結果面試官也是個逗逼,問問題把自己也能繞進去,之後,隨便問了幾個就送客了。不招人就別約面試麼。
  1. 兩陣列,輸出a中不在b中的元素
  2. N個數,求最大值
  3. 撲克牌
  4. spring說說
  5. 專案講講
  6. HashMap的取操作的時間複雜度
  7. 連結串列相交
  8. 重點在時間複雜度上

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
公司7:搜狐自媒體部門result:拿到Offer
  1. 講講shixi專案
    1. 提了一些問題
  2. 講了spark streaming計算原理和過程
  3. kafka的相關東西,
    1. 為什麼要在topic下分割槽,每個partition可以在不同的broker上嗎?
    2. kafka為什麼可以快速持久化
  4. Spring的IOC機制,spring容器如何建立物件?
  5. SpringMVC的訊息處理流程,DispatchServlet控制器在哪裡配置?
  6. 資料庫的索引使用什麼資料結構?
  7. 資料庫儲存引擎有哪些,區別
  8. AOP
    1. 動態代理和靜態代理的區別
    2. 動態代理怎麼實現的,如何得到被代理類的所有方法
  9. 分K組來反轉單鏈表
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
公司8:百度result:一面跪百度面試,感覺自己受到了侮辱。面試官是搞PHP的,剛開始就問賊難的問題,與java相關的一個不問,之後再問簡單的演算法題,但是腦子就蒙圈了,就不難從易到難問問題嗎?(媽的,賊不爽了。)
  1. 實習專案聊聊,在聊的過程中會不斷的提問,針對各個實現的地方。
  2. 100億個網址,如何去重?
  3. git用過是吧?讓你設計實現一個git diff的演算法,你會怎麼實現?
  4. Linux中如何檢視執行緒狀態?指定一個執行緒怎麼檢視?
  5. 網路程式設計Socket講講。
  6. set的底層資料結構是什麼?
  7. 手寫單例模式。
  8. TCP和UDP的區別?丟包重傳的次數?
  9. 死鎖的四個必要條件
  10. 具體案例,如何避免死鎖?某個執行緒只有獲得A鎖和B鎖才能對某資源進行操作,在多執行緒條件下,如何避免死鎖?
  11. 找出一個數組中的多數元素?追問,時間複雜度可以再小嗎?
  12. 自己實現一個String2Int的演算法。

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
公司9:小米科技result:二面跪一面出來一個搞前端的,簡單說了下實習專案,之後就開始寫起了演算法。        演算法1:輸入一個整數,打印出所有符合條件的有效括號。        演算法2:二叉樹的前序遍歷的變種形式。二面出來的好像也不是搞Java開發的,不過確實是個搞後臺開發的。
  1. 程序通訊,如何分配資源?
  2. 分散式相關的知識,比如kafka、spark和Hadoop等知識,往深聊,這指定跪。。。
  3. 青蛙跳臺階演算法題

筆試跪的公司有:360、網易、今日頭條

如果對你有幫助,記得點贊哦~歡迎大家關注我的部落格,可以進群366533258一起交流學習哦~