一、阿里巴巴
1. 絮叨(可跳過)
阿里從今年開始,春季的暑期實習招聘開始有筆試了,想進阿里的小伙伴,一定要把握住春季的這次實習機會,因為阿里很多部門都是秋招不怎么招人,都是暑期實習生轉正,
下面是阿里集團中有筆試的崗位:

考試時間很靈活,一般就固定在一周中的某幾天,根據自己的時間安排,到某一天筆試時間了自行去考試就可以了,沒有準備好就等下一場考試時間就好了,

整個阿里集團都是共享這一次筆試機會,面試如果掛了可以聯系其他部門(如果有部門還有HC),不必再進行筆試了,所以筆試成績也是有記錄的,
2. 面經
今年阿里面試基本都是采用電話面,所以只要選擇一個安靜的地方接聽就好,挺方便的,春季實習時候忘記整理了,回憶不起來了,所以這里講的是正式秋招的,
- 開場自我介紹
- 你最熟悉的一種排序演算法,講講如何實作的,分析時間復雜度?
- 資料結構熟不熟,講解HashMap如何解決hash沖突的,是執行緒安全的嗎?
- 講講TCP三次握手,為什么要三次握手?
補充:我回答兩次握手會出現丟包、延遲等情況,面試官說三次也會有這種情況出現,小伙伴們可以再思考思考,越是這類常見的面試題,面試官可能問的會越深透, - TCP如何保證可靠性的?
- 行程和執行緒之間的區別?
- 列舉下行程之間的通信方式有哪些?
- 執行緒有哪幾種狀態?
- 知道幾種Java鎖,什么是悲觀鎖和樂觀鎖?
- JVM中如何判斷物件是否存活?我回答可達性分析演算法的時候,又問了哪些可以作為root物件?
- 有幾種GC演算法,選擇自己熟悉的一個詳細講講
- G1收集器是采用的哪種演算法?
通話時間68分鐘,回頭看看這些面試題會發現,面試官很想知道你熟悉哪些知識,對這些知識掌握多深,問題設定的也很全面,圍繞資料結構、計算機網路、作業系統和JVM這些計算機基礎知識問的,
二、位元組跳動(大資料開發)
一面:
- 自我介紹
- 分別介紹下Hadoop的幾個組成框架?
- HDFS如何進行寫操作的?
- 詳細介紹下MapReduce的作業機制?我重點回答了切片原理和Shuffle機制
- MapReduce有哪些優化方法?
- Redis熟不熟,介紹下它有幾種資料型別?我回答了8種,面試官說只有5種,后來在網上搜了搜,版本也很多,
- 介紹下布隆過濾器的原理?
- TCP三次握手和四次揮手,什么時候進入Time_Wait階段的?
- 手撕代碼第一道是力扣原題:169. 多數元素
- 手撕代碼第二道如何實作最小堆疊(也是力扣原題155. 最小堆疊),可能時間有限,沒有讓手寫,說一下思路,
- 反問環節,有沒有什么想問面試官的?
二面:
- 自我介紹之后,就全程幾乎都是專案面,簡歷里有兩個專案,被問到了很多細節上的,小伙伴們的簡歷上的專案一定要知根知底,輻射出的一些知識點也要掌握,比如我專案里有涉及到資料熱點問題了,就會問到快取雪崩、穿透之類的問題,
- 反問環節
三面:
沒有自我介紹,上來就手撕代碼,
- 用MapReduce手寫一個wordcount
- 談一談mapreduce如何實作topK的
- 聊一聊在學習中遇到的困難,然后如何解決的?
- 技術堆疊是怎么學習的?
- 反問環節,我問了作業中主要在用哪些技術堆疊?
三、拼多多
一面:
- 自我介紹
- Java中的Object類有哪些方法?介紹下final關鍵字
- 多載和重寫的區別是什么?
- HashMap和CurrentHashMap的區別,以及用到的鎖?
- 給100萬個資料,如何查找前10大個的資料?
- JVM啟動時需要啟動哪些執行緒?
- GC演算法以及垃圾回收器有哪些,CMS的優缺點
- 介紹下Java鎖,并發關鍵字CountDownLatch、Semaphore
- ZooKeeper原理、選舉機制講一下,在專案中怎么用到的?
- 手撕代碼:給了一組的數字,把指定的數字移動到前面,其他數字的順序不變,和力扣中的283. 移動零類似,
- 手撕代碼:無序陣列中找中位數,
二面:
- 自我介紹,聊聊專案
- mysql熟悉嗎,介紹下索引,b+數,為什么不用avl樹;
- 講講mysql的隔離級別,mvc機制;
- 分布式鎖有了解嗎?不熟,然后接下來又問了下Java鎖
- Synchronized鎖和ReentrantLock鎖的區別?
- volatile作用和底層如何實作的?
- 講講行程調度演算法有哪些?
- 什么是CAS,如何解決ABA問題的?
- 手撕代碼:手寫歸并排序,并分析時間復雜度和空間復雜度
三面:視頻面
- 專案介紹,問了很多涉及到的技術堆疊
- 如何實作負載均衡的?Nginx作用介紹下
- 問到了畢設方向,以及如何學習技術堆疊的
四、騰訊
一面:騰訊音樂
- 自我介紹
- 專案介紹,問了一致性哈希
- Reids作用是干嘛的,持久化機制
- http常見的幾個狀態碼,http與https的區別介紹下
- tcp如何實作可靠性的,擁塞控制、流量控制
- 行程和執行緒的區別,執行緒的創建方式,有幾個狀態,wait和sleep方法?
- 執行緒池的增長策略和拒絕策略
- 愿不愿意轉C ++,愿不愿意去深圳作業?不愿意
五、美團(大資料開發)
一面
- 自我介紹
- 專案介紹,資料是怎么來的,處理后如何進行存盤?哪些是離線和實時處理的資料?
- 看過相關技術堆疊的論文嗎?
- linux熟悉嗎?介紹下常用的指令,查看記憶體,磁盤,行程,埠
- HashMap的底層原理?1.7和1.8的區別有哪些,與ConcurrentHashMap的區別
- 資料庫的隔離性問題,臟讀、不可重復度、幻讀
- 介紹下Redis中RDB和AOF的區別,如何重寫AOF檔案?
- Hadoop集群需要啟動哪些行程?
- 介紹下HBase的存盤結構
- 反問
二面
- 自我介紹
- 手寫代碼:給一個字串,找出里面最長的回文串;
- 手寫代碼: 給一張表,用sql陳述句查找工資最高的前10名員工的資訊;
- 介紹下行程間通信有哪些,最快的是哪個?
- 信號量和互斥鎖的區別?
- 講一下AQS框架的原理
- JVM的類加載機制,為什么是雙親委派,不是的話有什么后果?
- 執行緒池有哪些,以及有哪些核心引數?
- Kafka如何保證資料安全的
- 介紹一下零拷貝模式
- HBase的rowkey設計需要注意什么?
三面
- 自我介紹
- JVM中哪些物件進入老年代?
- GC演算法有哪些?自己用過哪些GC收集器?
- HashMap的1.8中在擴容方面做了哪些優化?
- Hbase的讀寫流程介紹下,以及和HDFS的讀寫流程的區別?
- 怎么處理大量的小檔案?如何優化,提高mr的shuffle效率
- 介紹下spark RDD,說幾個常見的算子,分別是哪種依賴?
- 手撕代碼:統計一個文本中單詞出現的頻率,輸出前10個
- 如果來美團作業,有什么規劃?
- 反問
六、百度
一面:
- 自我介紹
- 手撕代碼:層序遍歷二叉樹,回傳一個陣列
- ArrayList和LinkedList的區別,底層怎么實作的?
- Java中的OOM問題,怎么避免
- IO記憶體管理,IO模型
- Java鎖了解哪些,挑一個熟悉的介紹下
- Synchronized的實作原理?與CAS的區別
- 如何解決資料傾斜,從哪些方面可以解決?
- 介紹下mysql中的索引引擎?怎么學習的mysql
二面:
- 自我介紹
- 手撕代碼:給一個字符陣列,輸出出現頻率最高的前K個字符;
- 手撕代碼: 力扣原題 53. 最大子序和
- 輸入一個網址,會發生哪些程序?
- TCP和UDP的區別是什么,有哪些應用?
- TCP的4次揮手,time_wait的作用是什么?
- 介紹下IO模型,select,poll,epoll的區別?
- Redis的持久化機制了解嗎?介紹下兩種方式的區別
七、總結
主要羅列了一下今年大廠的面試情況,可以看出來出了專案之外,考察的計算機基礎主要設計計算機網路,作業系統,JVM,以及資料庫,分布式快取等,而手撕代碼,幾乎都是來源于力扣原題,希望小伙伴們重視下力扣刷題,不必追求刷的數量和難度系數,把力扣【Hot100】和【劍指offer】多刷幾遍,應該沒問題,像排序演算法,LRU常見的也要多練習練習,
對以上常見的這些面試題目,包括其他小廠的,我會把答案按照專題系列的形式整理下來,比如【執行緒池系列】、【JVM系列】,每個專題盡可能地把所有常見考題的答案都整理出來,目前正在推出【Redis系列】,
歡迎大家前來批評指正,也可關注公眾號:空心的夢,回復“ebook”領取學習資料!

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/144167.html
標籤:其他
