4月面完Google/網易/騰訊/百度/華爲,熬夜5天整理面經攢一波人品!

4月是春招的黃金階段,投了幾十份簡歷,大大小小的公司不知道去了多少家,也幸運的拿到了某廠offer。加上前陣子有好多朋友問各大廠的面試過程,所以爲了方便溝通交流回來熬夜5天整理很多Google/網易/騰訊/百度/華爲的面經,今天也拿來給分享一波攢攢人品吧!

image.png

 

注意:整理的各家面經(部分附有解析)以及面試專題(附答案),有需要的老鐵可以直接<點我>免費下載~

第一家是Google(筆試)

Google 筆試是沒有門檻的,這樣說是因爲 Google 根本沒有限制筆試的人數,開了N個教室,讓N多人蔘加……不過筆試本身卻有門檻,看了題目就知道...

image.png

 

  • 第一個的題目(嗯,記的不是很完整):在一棵(排序?)二叉樹中搜索指定值,數據結構定義爲(唉唉,數據結構的具體名字都不記得了,my god)
  • 第二個的題目:計算 Tribonaci 隊列(嗯,九成九記錯了那個單詞……),規則是 T(n) = T(n
  • -1) + T(n - 2) + T(n -3),其中 T(0) = T(1) = 1,T(2) = 2
  • 第三個的題目:在一個無向圖中,尋找是否有一條距離爲 K 的路徑,描述算法即可,不用實現,分析算法的時間和空間複雜度,儘量優化算法
  • 第四個的題目... ...

Google面經.png

 

第二家是網易

網易給了我一個教訓,所以記下來以留念

image.png

 

一面:65分鐘左右

  • 1. 自我介紹;(個人信息:一分鐘說完了)
  • 2. 抽象類和接口的區別;(Java核心技術:全部講了一通後,拋出第三個問題)
  • 3. 抽象類內方法如果全部是抽象的,是不是就是接口?爲什麼有的類繼承一個類後,還要實現多個接口?(Java核心技術)
  • 4. 多線程中,線程池用過哪些線程池?(多線程併發);
  • 5. 線程池中所有的參數講解一下(多線程併發)
  • 6. 線程池中從corePoolSize到maximumPoolSize轉變過程,然後問我反向轉變的操作;
  • 7. HTTP發送請求和接收響應的整個流程;(web:扯了一下客戶端和服務端之間的流程)
  • 8. 403和500狀態分別講解一下,他們之間有什麼區別;(web技術)
  • 9. 淘寶裏如果按照1-5星的店面,從五家店裏一共推送出10個同一類產品,都是隨機推送,但是最後大量的隨機測試後,要保證五顆星的店家推送的商品數量大概是一顆星店家推送的商品數量的五倍,且不能破壞其他概率輸出(思維能力:這個問題跟他討論了有10幾分鐘)
  • 10. 一個已知存儲了數據的HashMap中如何讓所有的鍵修改成"網易+原來的鍵",意思是在所有的key中添加"網易"這個前綴;(Java核心技術)
  • 11. spring的AOP原理和底層實現;(框架技術)
  • 12. Spring的註解講一下;(框架技術)
  • 13. 靜態代理和動態代理區別講一下;(Java核心技術)
  • 14. 靜態代理和適配器設計模式的區別;(Java核心技術)
  • 15. tcp和udp的區別;(計算機網絡知識:就從可靠性,通訊方式,數據大小,應用方面說了說)
  • 16. cglib底層實現;
  • 17. 數據庫的樂觀鎖原理和實現。

二面:差不多也是1個小時

  • 1. 數據庫索引的設計原理以及意義(數據庫:講了一下概念和聚集索引,非聚集索引)
  • 2. 接着上面的問題,問了給定一個數據庫,如何設計索引,有什麼要注意的?
  • 3. 給定淘寶秒殺場景,請設計系統實現秒殺
  • 4. 微博粉絲和關注者,以及用戶信息,請實現數據庫表,來關聯起這些表
  • 5. 針對我設計的表,進行查詢操作,問我所有的表查詢完後,多少次操作。(數據庫)
  • 6. 之前實習的做了什麼項目?講解一下。(項目經驗)
  • 7. 就着項目,提出海量數據的時候,集合存不下怎麼辦(Java核心技術)
  • 8. Spring中的事務原理講一下
  • 9. 數據庫裏的事務原理講一下
  • 10. 數據庫的事務特性有哪些?(數據庫)
  • 11. 手寫jdbc連接數據庫的代碼
  • 12. mybatis和jdbc的區別?mybatis底層實現?
  • 13. 線程池(這個講了好久)
  • 14. 課題講一下做的什麼;(個人課題)
  • 15. 通信是偏軟件還是硬件?爲什麼學Java(職業發展規劃)
  • 16. 最後問我有什麼要問的?(提問環節)

HR面:大概半個小時

  • 1. 自我介紹,想在哪裏發展?父母對你在哪裏工作的看法?
  • 2. 何時能入職?
  • 3. 做過什麼項目?項目的整個過程?評價一下
  • 4. 遇到最有壓力的事是什麼?如何緩解自己的壓力?
  • 5. 期望的工資是多少?有什麼想要問我的?

第三家是騰訊

image.png

 

一面(1小時50分鐘)

  • 有沒有了解過nginx,如何將監聽到的連接分配到其他線程
  • linux內核是否支持多進程或多線程accept()同一個listenfd
  • 有沒有想過無鎖隊列的實現7.原子性的理解,系統底層如何實現原子性
  • int類型全局變量讀、寫、自增哪些是原子性的
  • volatile的作用
  • stl容器是否線程安全
  • 講一下哈希表的底層細節,讓你設計一個線程安全的哈希表,會怎麼設計
  • malloc()的底層細節,brk()和mmap()
  • inline、define、普通函數的區別
  • linux如何設置core文件生成
  • linux如何設置開機自啓動
  • linux用過哪些命令、工具
  • 用過哪些工具檢測程序性能,如何定位性能瓶頸的地方
  • 基於socket網絡編程和tcp/ip協議棧,從客戶端send()開始,到服務端recv()結束的過程,越細越好
  • tcpdump抓包,如何分析數據包
  • tcp如何設定超時時間
  • 有沒有做過網絡安全協議相關的項目
  • 手撕代碼,數組內兩個子區間交換
  • 目前還有哪些面試在流程中,拿了哪些offer

二面(50分鐘)

  • 數據包如何編解碼,tcp黏包問題如何解決
  • rpc有沒有了解
  • 網絡庫的性能如何,怎麼測試性能,如何計時和計數
  • core dump有沒有遇到過,gdb怎麼調試
  • 在高併發的生產環境中(非調試場景下),如果出現數據包的丟失,如何定位問題
  • 項目性能瓶頸在哪,數據庫表怎麼設計
  • 假設項目的性能瓶頸出現在寫數據庫上,應該怎麼解決峯值時寫速度慢的問題
  • 假設數據庫需要保存一年的數據,每天一百萬條數據,一張表最多存一千萬條數據,該咋設計表
  • 除了C++,還有學習其他語言嗎
  • 一億條電話號碼刪除重複的部分,時間、空間複雜度儘可能低

第四家是百度

百度的面試環境不錯,一對一在酒店的房間面試,百度是我第一家被女面試官面試的公司,然後總體感覺百度面試官問完一個東西,喜歡揪着你問爲啥是這樣的,比如說前面的final關鍵字以及我講完hashmap擴容以後問我正在擴容的時候來了一個怎麼插入,所以感覺要想通過面試,有些東西自己得去深究,自己給自己想問題,爲啥是這樣子的。

image.png

 

  • 項目
  • 字符集和編碼的區別?
  • Final修飾詞作用?
  • 接着問了final修飾有啥好處?
  • 還問了String中重寫equals不重寫hashcode會出現什麼問題?
  • 由於我上面提到了集合,然後問我讓我講一講hashmap
  • 由於我上面提到了hashmap非線程安全,就問了我ConCurrentHashmap
  • 問了LinkedList適合用什麼排序?
  • 出了一道場景圖,就是對於一個上線的系統,它會週期性地出現卡頓,這是怎麼回事,讓我分析原因.
  • ... ...

image.png

 

第五家是華爲

一面

  • 介紹一下你熟悉的技術棧和項目
  • 說一下你常用的集合(ArrayList,LinkedList,HashMap)他們之間的區別
  • 說一下線程池的參數,爲什麼要設置一個maxsize,以及各個參數的情況,線程空閒機制等
  • 說一下你用到哪些鎖,以及區別
  • 假如給你一個類,類裏面有一個方法public synchronized void x(){},現在new 兩個對象a,和b,我們用a.x和b.x,會不會出現搶佔鎖的情況
  • 什麼是重入鎖,爲什麼稱爲重入,舉個例。如果不是重入的會發生什麼。
  • 項目中的協議用的什麼
  • 重用的集合自定義排序是怎麼用的
  • 前臺的請求,後臺怎麼處理和接受
  • http和https區別,有沒有用過https
  • jvm是運行時區域
  • 堆外內存,爲什麼需要堆外內存
  • 手撕一個代碼leetcode72題

二面

  • 將公司實習項目,架構和流程
  • 具體分析流程,哪一步什麼情況
  • http請求的格式,三部分分別有哪些內容,之間的分隔符是‘/r’還是‘/n’
  • 你的項目使用了tomcat沒有
  • tomcat是導入使用war包的,裏面的xml文件是服務器讀還是war讀
  • springboot的請求,在進行數據庫操作的當前的鏈接是什麼樣,是否會阻塞
  • 有沒有做過線程,創建線程的方式
  • 手撕一個代碼,leetcode第415題
  • 做一個數學題,有一棟100層高的大樓,給你兩個完全相同的玻璃球。假設從某一層開始,丟下玻璃球會摔碎。那麼怎麼利用手中的兩個球,用什麼最優策略知道這個臨界的層是第幾層???

三面

  • dubbo介紹一下
  • dubbo架構圖
  • dubbo是否是微服務
  • zookeeper的作用
  • zookeeper要不要做分發?
  • 負載均衡怎麼做的?

接下來說說面試專題的複習與學習

其實不管哪家公司,怎麼面試,問的知識點什麼的都是差不多的,就看我們肚子裏的存貨有多少,能否應付。前段時間我還整理了一份覆蓋25大專題的面試題+解析(總共有227頁)

  • 專題一:JavaOOP面試題
  • 專題二:Java集合/泛型面試題
  • 專題三:Java中的IO與NIO面試題
  • 專題四:Java反射面試題
  • 專題五:Java序列化面試題
  • 專題六:Java註解面試題
  • 專題七:多線程&併發面試題
  • 專題八:JVM面試題
  • 專題九:Mysql面試題
  • 專題十:Redis面試題
  • 專題十一:Memcached面試題
  • 專題十二:MongoDB面試題
  • 專題十三:Spring面試題
  • 專題十四:Spring Boot面試題
  • 專題十五:Spring Cloud面試題
  • 專題十六:RabbitMQ面試題
  • 專題十七:Dubbo 面試題
  • 專題十八:MyBatis 面試題
  • 專題十九:ZooKeeper 面試題
  • 專題二十:數據結構面試題
  • 專題二十一:算法面試題
  • 專題二十二:Elasticsearch 面試題
  • 專題二十三:Kafka 面試題
  • 專題二十四:微服務面試題
  • 專題二十五:Linux面試題

image.png

 

除此之外還有一份287頁Java核心知識整理(包括:VM,JAVA集合,JAVA多線程併發,JAVA基礎,Spring原理,微服務,Netty與RPC,網絡,日誌,Zookeeper,Kafka,RabbitMQ,Hbase,MongoDB,Cassandra,設計模式,負載均衡,數據庫,一致性哈希,JAVA算法,數據結構,加密算法,分佈式緩存,Hadoop,Spark,Storm,YARN,機器學習,雲計算

Java核心知識整理.png

 

無論是面經也好,還是這個25大面試專題的整理以及這份287頁的Java核心知識都是學習複習的寶典,若能把這些都存進腦子裏,還不敢跟面試官槓槓

最後來說說簡歷?

  • 爲什麼說簡歷很重要?

一份好的簡歷可以在整個申請面試以及面試過程中起到非常好的作用。 在不誇大自己能力的情況下,寫出一份好的簡歷也是一項很棒的能力。爲什麼說簡歷很重要呢?

  • 先從面試來說

假如你是網申,你的簡歷必然會經過HR的篩選,一張簡歷HR可能也就花費10秒鐘看一下,然後HR就會決定你這一關是Fail還是Pass。

假如你是內推,如果你的簡歷沒有什麼優勢的話,就算是內推你的人再用心,也無能爲力。

另外,就算你通過了篩選,後面的面試中,面試官也會根據你的簡歷來判斷你究竟是否值得他花費很多

時間去面試。

所以,簡歷就像是我們的一個門面一樣,它在很大程度上決定了你能否進入到下一輪的面試中。

  • 再從面試說起

我發現大家比較喜歡看面經 ,這點無可厚非,但是大部分面經都沒告訴你很多問題都是在特定條件下才問的。舉個簡單的例子:一般情況下你的簡歷上註明你會的東西纔會被問到(Java、數據結構、網絡、算法這些基礎是每個人必問的),比如寫了你會 redis,那面試官就很大概率會問你 redis 的一些問題。

比如:redis的常見數據類型及應用場景、redis是單線程爲什麼還這麼快、 redis 和 memcached 的區

別、redis 內存淘汰機制等等。

history // 所有的歷史記錄

history | grep XXX // 歷史記錄中包含某些指令的記錄

history | more // 分頁查看記錄

history -c // 清空所有的歷史記錄

!! 重複執行上一個命令

查詢出來記錄後選中 : !323所以,首先,你要明確的一點是:你不會的東西就不要寫在簡歷上。另外,你要考慮你該如何才能讓你

的亮點在簡歷中凸顯出來,比如:你在某某項目做了什麼事情解決了什麼問題(只要有項目就一定有要

解決的問題)、你的某一個項目裏使用了什麼技術後整體性能和併發量提升了很多等等。

面試和工作是兩回事,聰明的人會把面試官往自己擅長的領域領,其他人則被面試官牽着鼻子走。雖說

面試和工作是兩回事,但是你要想要獲得自己滿意的 offffer ,你自身的實力必須要強。

  • 必知必會的幾點

大部分公司的HR都說我們不看重學歷(騙你的!),但是如果你的學校不出衆的話,很難在一堆簡歷

中脫穎而出,除非你的簡歷上有特別的亮點,比如:某某大廠的實習經歷、獲得了某某大賽的獎等等。

大部分應屆生找工作的硬傷是沒有工作經驗或實習經歷,所以如果你是應屆生就不要錯過秋招和春招。

一旦錯過,你後面就極大可能會面臨社招,這個時候沒有工作經驗的你可能就會面臨各種碰壁,導致找

不到一個好的工作

寫在簡歷上的東西一定要慎重,這是面試官大量提問的地方;

將自己的項目經歷完美的展示出來非常重要。

  • 必須瞭解的兩大法則

STAR法則(Situation Task Action Result)

**Situation: **事情是在什麼情況下發生;

**Task:: **你是如何明確你的任務的;

**Action: **針對這樣的情況分析,你採用了什麼行動方式;

**Result: **結果怎樣,在這樣的情況下你學習到了什麼。

簡而言之,STAR法則,就是一種講述自己故事的方式,或者說,是一個清晰、條理的作文模板。不管是什麼,合理熟練運用此法則,可以輕鬆的對面試官描述事物的邏輯方式,表現出自己分析闡述問題的清晰性、條理性和邏輯性。

FAB 法則(Feature Advantage Benefifit)

Feature:是什麼;

Advantage:比別人好在哪些地方;

Benefifit:如果僱傭你,招聘方會得到什麼好處。

簡單來說,這個法則主要是讓你的面試官知道你的優勢、招了你之後對公司有什麼幫助。

  • 項目經歷怎麼寫

簡歷上有一兩個項目經歷很正常,但是真正能把項目經歷很好的展示給面試官的非常少。對於項目經歷

大家可以考慮從如下幾點來寫:

1. 對項目整體設計的一個感受

2. 在這個項目中你負責了什麼、做了什麼、擔任了什麼角色

3. 從這個項目中你學會了那些東西,使用到了那些技術,學會了那些新技術的使用

4. 另外項目描述中,最好可以體現自己的綜合素質,比如你是如何協調項目組成員協同開發的或者在

遇到某一個棘手的問題的時候你是如何解決的又或者說你在這個項目用了什麼技術實現了什麼功能

比如:用redis做緩存提高訪問速度和併發量、使用消息隊列削峯和降流等等。

  • 專業技能怎麼寫

先問一下你自己會什麼,然後看看你意向的公司需要什麼。一般HR可能並不太懂技術,所以他在篩選

簡歷的時候可能就盯着你專業技能的關鍵詞來看。對於公司有要求而你不會的技能,你可以花幾天時間

學習一下,然後在簡歷上可以寫上自己瞭解這個技能。比如你可以這樣寫(下面這部分內容摘自我的簡

歷,大家可以根據自己的情況做一些修改和完善):

  1. 計算機網絡、數據結構、算法、操作系統等課內基礎知識:掌握
  2. Java 基礎知識:掌握
  3. JVM 虛擬機(Java內存區域、虛擬機垃圾算法、虛擬垃圾收集器、JVM內存管理):掌握
  4. 高併發、高可用、高性能系統開發:掌握
  5. Struts2、Spring、Hibernate、Ajax、Mybatis、JQuery :掌握
  6. SSH 整合、SSM 整合、 SOA 架構:掌握
  7. Dubbo: 掌握
  8. Zookeeper: 掌握
  9. 常見消息隊列: 掌握
  10. Linux:掌握
  11. MySQL常見優化手段:掌握
  12. Spring Boot +Spring Cloud +Docker:瞭解
  13. Hadoop 生態相關技術中的 HDFS、Storm、MapReduce、Hive、Hbase :瞭解
  14. Python 基礎、一些常見第三方庫比如OpenCV、wxpy、wordcloud、matplotlib:熟悉
  • 排版注意事項

1. 儘量簡潔,不要太花裏胡哨;

2. 一些技術名詞不要弄錯了大小寫比如MySQL不要寫成mysql,Java不要寫成java。這個在我看來還

是比較忌諱的,所以一定要注意這個細節;

3. 中文和數字英文之間加上空格的話看起來會舒服一點;

  • 其他一些小tips

1. 儘量避免主觀表述,少一點語義模糊的形容詞,儘量要簡潔明瞭,邏輯結構清晰。

2. 如果自己有博客或者個人技術棧點的話,寫上去會爲你加分很多。

3. 如果自己的Github比較活躍的話,寫上去也會爲你加分很多。

4. 注意簡歷真實性,一定不要寫自己不會的東西,或者帶有欺騙性的內容

5. 項目經歷建議以時間倒序排序,另外項目經歷不在於多,而在於有亮點。

6. 如果內容過多的話,不需要非把內容壓縮到一頁,保持排版乾淨整潔就可以了。

7. 簡歷最後最好能加上:“感謝您花時間閱讀我的簡歷,期待能有機會和您共事。”這句話,顯的你會
很有禮貌。

最後再嘮叨一句,文中提到的各大面經

image.png

 

面試專題以及學習筆記皆可免費分享下載,注意, <點擊我>即可!!

image.png

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章