軟件研發工程師前端
基礎研發工程師java
百度智能雲python
百度核心搜索部mysql
百度今年的提早批有點奇怪,好像都不走流程,牛客上好幾個百度內推的帖子,我投了幾個,基本上都是百度智能雲的,固然也有其餘部門。linux
下面是個人面經,包括三個部門的面試,每一個部門側重點不太同樣。nginx
百度智能雲程序員
1 項目web
2 講一下AOP吧面試
3 動態代理和靜態代理有什麼區別redis
4 TCP和IP報文是否會分片,分別在什麼狀況下會分片。
TCP分包以後是否還會進行ip分片
5 作個題
無限長軌道。兩輛車同方向開,車會滴水,怎麼讓他們相遇。這題簡直像腦筋急轉彎。
6 寫一個斐波那契數列
遞歸式,要求改進
dp方式,要求優化空間
用三個變量代替數組進行dp,要求改進
我說數學公式,OK。
7 講一下Linux的內存結構,我說只會JVM的,他讓我說一下。
二者的內存如何映射,是什麼關係,不會。
8 沒了
1 項目講一下,10多分鐘去了。
2 排序算法,複雜度,比較。快排的空間複雜度是logn
3 講一下OSI七層模型,我說了5層模型,而後他讓我再補充一下,問了每層的做用,問了wifi屬於哪一層。
4 線程間的同步用什麼方式,說了object方法。
問我使用hashmap時重寫哪兩個方法,爲何要重寫,巴拉巴拉,什麼場景下重寫。
5 平時用過什麼數據結構,list用哪些有啥區別。
6 Spring中的ioc和aop。ioc的註解有哪些。
autowired和resource有什麼區別,做用域有哪些。
autowired如何配置兩個類中的一個嗎
7 寫一個單例模式,有點忘卻了,巴拉巴拉搞出一個雙重檢測的,中間改了屢次。
8 Java會有內存泄漏嗎,三個區分別什麼狀況下會產生內存泄漏
1 主要了解哪些技術
2 分佈式系統怎麼設計,說了CAP和BASE,最終一致性
3 問我最終一致性是什麼,舉一下強一致性和最終一致性的例子。分佈式事務和消息隊列
4 分佈式事務的消息id怎麼確認順序,我說使用zk
5 zk的性能瓶頸怎麼克服,我說使用redis和redis集羣。
6 跨機房的網絡延遲怎麼解決,我說不懂,他讓我猜一俠華北到華南的延遲時間大概是多久,我說大概十秒內。
7 網絡這塊熟麼,說一下socket編程吧。說了一下java的socket
8 網絡編程的NIO和BIO區別,阻塞指的是什麼意思呢。
9 socket客戶端和服務端的鏈接過程和通訊過程說一下。
10 操做系統熟麼,通常版,shell和命令熟麼,不熟。
11 算法熟麼,答不熟。
12 系統怎麼設計,設計模式怎麼用
13 系統優化怎麼作,cpu,IO,內存分別怎麼排查問題和調優
14 家鄉,女友,巴拉巴拉
百度核心搜索
一面:
1 自我介紹
2 docker和k8s瞭解多少
3 研究生學了哪些課程
4 操做系統瞭解麼,講一下進程和線程
5 死鎖和處理方式
6 內存,虛擬內存和頁面置換
7 網絡瞭解麼,講一下三次握手和四次揮手
8 數據庫瞭解多少,mysql索引,事務,鎖講了一些
9 Redis呢,講了一下數據結構,持久化方式,使用場景
10 分佈式瞭解哪些,負載均衡有哪些方式,說了dns,nginx,lvs和硬件,一致性問題怎麼解決,說了2pc,3pc,raft和paxos,zab
10 mysql大表數據查詢,怎麼優化,分表,分庫。
11單鏈表判環
使用快慢指針解決
12 徹底二叉樹判斷:
1 項目
2 docker和kubenetes的原理和了解程度
3 docker的cgroup瞭解麼
4 kubenetes的架構,擴容是怎麼完成的。
5 Java的四種引用
6 Java的線程通訊方式
7 Linux的進程通訊方式
8 Java的線程池
9 算法
1 - N + 1這些數中取出N個,問剩下的是哪一個。。
我說加起來相減,面試官說取巧了,不能這樣。
我說比較數組下標,他仍是說取巧。
因而我讓他提示我一下,他說了排序再找。。額
而後想了兩個空間換時間的辦法,一個是用hashmap遍歷兩個數組。一個是合併數組後統計數字出現次數,也是hashmap
給定一串數字,找出全部可能的IP地址組合,好比192168111,組合是192.168.1.11,192.168.11.1。
應該LeetCode的題。以前本身沒寫完整,現場憋出來了。
這個代碼應該沒錯。面試官看了二十分鐘才說ok。
而後咱們就這樣沉默了20分鐘,中間他就說了幾句話。
1項目
2家庭狀況
3學習生活的挑戰
4學新技術的方式
5解釋一下docker
6意向城市和崗位方向
百度智能雲
基礎研發工程師
1 項目
2 隊列和棧區別
3 兩個棧實現隊列,兩個棧實現最小值棧
4 數據庫的事務性質,如何實現這些性質
5 事務隔離級別有哪些,默認是什麼級別。
6 已提交讀有什麼問題,用於什麼場景
7 二叉樹瞭解麼,平衡二叉樹呢,有什麼場景會用到呢。
8 殭屍進程和孤兒進程是什麼,分別有什麼危害。
9 主從複製怎麼實現。
10 Redis你用來作什麼,爲何不用mq作異步隊列
11 分佈式文件系統瞭解麼,HDFS講一下原理
12 Java中通常用什麼類型表示價格。
13 Java如何把byte類型轉換成字符串
14 Java的string類型爲何是不可變的
15 有什麼問題
研發工程師(Java)
我參與了阿里巴巴中間件部門的提早批面試,一共經歷了四次面試,拿到了口頭offer。這是個人面經,在這裏分享給你們。
1 自我介紹
2 項目中作了什麼,難點呢。
3 Java的線程池說一下,各個參數的做用,如何進行的。
4 Redis講一下
5 分佈式系統的全局id如何實現。用zookeeper如何實現的呢,機器號+時間戳便可。
6 分佈式鎖的方案,redis和zookeeper那個好,若是是集羣部署,高併發狀況下哪一個性能更好。
7 kafka瞭解麼,瞭解哪些消息隊列。
8 想作業務仍是研究。
9 而後出了一道題,linux的訪問權限是rwx格式的。使用一個類支持訪問權限的增刪改查,而且注意使用的數據格式以及方法效率,規範。給了一個多小時寫題。
耗時將近30分鐘。
1 介紹你作的項目和其中的難點。
2 上次面試官問的問題,反射的做用是什麼。
3 數據倉庫,多線程和併發工具等。
4 私有云,docker和k8s等。
5 瞭解哪些中間件,dubbo,rocketmq,mycat等。
6 dubbo中的rpc如何實現。
7 本身實現rpc應該怎麼作
9 dubbo的服務註冊與發現。
10 據說我是非科班,因而問了些排序算法
耗時將近30分鐘。
三面不是面試,而是筆試,耗時三個小時,考的是Java核心的基礎。可是好像不能透題,就不說了。都挺有難度的。
大概說一下就是有幾個考點,Java併發的知識點,集合類,線程池,多線程之間的通訊等。
聊人生談理想,HR小姐姐很是溫柔,交流十分愉快。30分鐘。
騰訊SNG
後臺開發工程師
大概是8月初投的簡歷,當時沒有選事業羣,次日直接被sng撈了,抓着我一頓面試。
一週內就面完了三次面試,接着就開始無盡的等待,整整等了三週左右,終於完成了四面和HR面。
整個過程仍是比較曲折的,技術面試的難度也挺大的,不過他們部門也是Java線,因此還比較有的聊。結果目前還不知道。
1 有序數組排序,二分,複雜度
2 常見排序算法,說下快排過程,時間複雜度
3 有N個節點的滿二叉樹的高度。1+logN
4 朋友之間的點對點關係用圖維護,怎麼判斷兩人是不是朋友,並查集,時間複雜度,過程。沒講清楚
1. 初始化元素
2. 實現元素與元素間的聯合操做
3. 實現查找元素所在樹的根節點
4. 解決一個問題,斷定兩個元素是否在同一棵樹上(兩個元素是否相互鏈接)
5 單元點最短路的方法,時間複雜度
6 如何實現關鍵字輸入提示,使用字典樹,複雜度多少,有沒有其餘方案,答哈希,若是是中文呢,分詞後創建字典樹?
7 hashmap的實現講一下吧,講的很詳細了。講一下紅黑樹的結構,查詢性能等。
8 Java中的垃圾回收講一下,講了分代,gc算法,gc root可達性分析等
9 講一下兩個項目你都作了什麼把。
10 除了代碼以外你還學習了什麼技術,框架。
11 死鎖是怎麼產生的
12 線程和進程的區別
13 進程的通訊方式
14 CPU的執行方式
15 代碼中遇到進程阻塞,進程僵死,內存泄漏等狀況怎麼排查。經過ps查詢狀態,分析dump文件等方式排查。
16 Linux瞭解麼,查看進程狀態ps,查看cpu狀態 top。查看佔用端口的進程號netstat grep
17 10g文件,只有2g內存,怎麼查找文件中指定的字符串出現位置。MapReduce分割文件處理。
他說能夠用cat | grep 管道處理。
1 快排的時間複雜度,冒泡時間複雜度,快排是否穩定,快排的過程
2 100w個數,怎麼找到前1000個最大的,堆排序,怎麼構造,怎麼調整,時間複雜度。
3 一個矩陣,從左上角到右下角,每一個位置有一個權值。能夠上下左右走,到達右下角的路徑權值最小怎麼走。
先說了一下dfs遞歸實現。面試官說要優化。
說了一下用迪傑斯特拉的思路,說能夠。
4 四輛小車,每輛車加滿油能夠走一千米,問怎麼能讓一輛小車走最遠。說了好幾種方案,面試官引導我優化了一下,可是仍是不滿意,最後他說跳過。
5 hashmap的實現,hashtable,concurrenthashmap實現。
6 MySQL的索引,B+樹性質。
7 Linux的cpu 100怎麼排查,top jstack,日誌,gui工具
8 Linux大文件怎麼查某一行的內容。
9 Redis內存數據庫的內存指的是共享內存麼
10 Redis的持久化方式
11 秒殺系統的架構設計
1 十億個數的集合和10w個數的集合,如何求它們的交集。
集合的數字不重複。
我講了兩次循環,兩次hash,以及排序或者合併等方式。。都不對。後來面試官說是對小數組作hash,而後遍歷大數組便可。我徹底想錯方向了。
2 十億和數找到前100個最大的,堆排序,怎麼實現,怎麼調整。
3 TCP和UDP的區別,具體使用場景呢。
4 TCP四次揮手講一下過程,最後一次ack若是客戶端沒收到怎麼辦。
5 對於socket編程,accept方法是幹什麼的,在三次握手中屬於第幾回,能夠猜一下,爲何這麼以爲。
6 Linux操做系統瞭解麼,瞭解一點點,就沒問了。
7 對於單例模式,有什麼使用場景了,講了全局id生成器,他問我分佈式id生成器怎麼實現,說了zk,問我zk瞭解原理不,講了zab,而後就沒問啦。
8 除了單例模式,知道適配器模式怎麼實現麼,有什麼用
9 回到網絡,剛纔你說到直播場景,知道直播的架構怎麼設計麼,要點是什麼,說了幾個不太對,他說要避免廣播風暴,答不會。
10 Redis和MySQL有什麼區別,用於什麼場景。
11 問了一下最近看什麼書,何時開始寫博客的
12 問了還有幾輪面試,他說這輪我能夠過,有點小驚喜
三面過了半個多月,終於安排四面了。
1 自我介紹
2 項目,收穫
3 Linux瞭解哪些,基礎命令和知識。問我proc文件系統瞭解麼,答不瞭解。
4 TCP和UDP的核心區別在哪,講了滑動窗口保證可靠有序傳輸,UDP不可靠。TCP須要鏈接而UDP不須要。
5 TCP的四次揮手,time wait狀態有什麼意義。
6 說完這個他問我有什麼想問他的了。
7 我問他爲何隔了這麼久才面試,並且以前三面都只是初試,而後他說最近他在休假,因此就。。。害我擔憂了很久。他說接下來等HR面就好了。
1 自我介紹
2 實習收穫
3 臺灣交流體驗
4 以前實習公司的狀況,拿到offer了嗎,會如何選擇呢
5 排一下公司,部門,薪資和城市等因素。
6 你的優缺點,如何改進
7 學生時代最成功的事
8 你的預期薪資
螞蟻金服中間件
螞蟻財富
研發工程師
以前面了阿里中間件的提早批,不過沒走流程。同期還面了螞蟻中間件的兩輪面試,被告知不走流程就不能面了,因此也沒面完。
後來走了螞蟻金服財富事業羣這邊的流程。前幾天剛剛面完HR。
正好今天分享一下面經,你們能夠多交流交流哈。
1:螞蟻中間件(面了三次,兩次一面,一次二面)
****2:螞蟻財富(1+2+交叉+HR)****
1一面
螞蟻金服中間件一號機
一面:
自我介紹
1Java中的多線程瞭解麼,線程池的增加策略和拒絕策略瞭解麼,說一下。
2講一下線程增長的過程和拒絕策略的執行。
3講了一下fixthreadpool的增加策略,而後幾種拒絕策略。
4高併發狀況下,如何使用線程池,用哪一個,問了一下線程結束要多久,是否在下一個線程結束前完成(我想的是cachethreadpool,其實思路錯了)。
5表示併發量比較大,因此我說能夠考慮併發量是否大於隊列長度加上最大線程數量和,若是不超過的話能夠是用fixthreadpool。
6併發juc瞭解麼,有哪些線程安全的list。說了個copyonwritelist,想了半天說不出第二個了。尷尬,那就vector把,不是juc裏的。
貌似併發包裏確實沒有其餘list啊。
還問了concurrenthashmap1.8的改動。
7HTTP協議瞭解麼,和tcp有什麼區別。
8http1.0和2.0的區別。
答了TCP鏈接複用,加入ssl,以及壓縮請求頭。
其中哪一個更新比較有意義,爲何。我說的是壓縮請求頭,這樣能夠優化HTTP服務的性能。
9Java的網絡編程,好比NIO和Socket瞭解麼。
說下BIO和NIO的區別把。
我說了BIO的阻塞用法,以及NIO的IO多路複用用法,說了selector,seletedkey,channel等類的使用流程,以及單線程處理鏈接,多線程處理IO請求的好處。
10說一下NIO的類庫或框架
講了netty,寫過服務端和客戶端的demo,沒有在生產中實踐。
1 channelhandler負責請求就緒時的io響應。
2 bytebuf支持零拷貝,經過邏輯buff合併實際buff。
3 eventloop線程組負責實現線程池,任務隊列裏就是io請求任務,相似線程池調度執行。
4 acceptor接收線程負責接收tcp請求,而且註冊任務到隊列裏。
11倒排索引瞭解麼,我說不了解。
其實就是搜索引擎的基礎索引,根據關鍵字到文檔的映射關係創建索引,中文關鍵字可使用中文分詞,查詢時經過關鍵字來定位索引,而且進行排序後獲得文檔結果集。
而後面試官說講一下數據庫把,說下sql優化的方式
我說的是MySQL,先講了一下sql使用索引的優化,而後基於索引說了幾條優化方案。
12索引何時會失效變成全表掃描
說了聯合索引的前綴匹配,跳躍索引,聚合函數,判空和<>這些狀況。
13分佈式的paxos和raft算法瞭解麼
瞭解過,可是講不清楚。
paxos:多個proposer發請提議(每一個提議有id+value),acceptor接受最新id的提議並把以前保留的提議返回。當超過半數的accetor返回某個提議時,此時要求value修改成propeser歷史上最大值,propeser認爲能夠接受該提議,因而廣播給每一個acceptor,acceptor發現該提議和本身保存的一致,因而接受該提議而且learner同步該提議。
raft:raft要求每一個節點有一個選主的時間間隔,每過一個時間間隔向master發送心跳包,小心跳失敗,該節點從新發起選主,當過半節點響應時則該節點當選主機,廣播狀態,而後之後繼續下一輪選主。
14中間件知道哪些,阿里的dubbo,rocketmq的事務消息,問了TCC回答說這個以前沒看明白。
說了mycat實現分表分庫,消息隊列kafka和rabbitmq等。
15平時看什麼書,怎麼學習的。還跟我說他們部門3個華科的,校友多多。
16Spring和Springmvc講一下。講了Spring的ioc和aop,Springmvc的基本架構,請求流程。
螞蟻金服中間件二號機
一面:
1 自我介紹
2 講一下ArrayList和linkedlist的區別,ArrayList的擴容方式,擴容時機。
3 hashmap的實現。
4 NIO瞭解麼,講一下和BIO的區別,AIO呢。阻塞,非阻塞,異步。具體。
5 你說了解分佈式服務,那麼你怎麼理解分佈式服務。
6 你說了解Tomcat的基本原理,瞭解的是哪一部分,基本架構,connector和container
7 你在項目中怎麼用到併發的
8 docker和虛擬機講一下。
9 有啥想問的
螞蟻金服中間件二面
1 項目
2 說一下Spring源碼把,它的架構,流程。
3 Spring的bean若是要在實例化過程當中修改其某一個成員變量,應該怎麼作呢。不經過構造方法,而且AOP也並不能實現。
4 Tomcat的類加載器瞭解麼,回答不瞭解只瞭解Java的類加載器。
5 自定義類加載器怎麼實現,其中哪一個方法走雙親委派模型,哪一個不走,不走的話怎麼加載類(實現findclass方法,通常用defineclass加載外部類),如何才能不走雙親委派。(重寫loadclass方法)
6 布隆過濾器瞭解麼,講了ip地址過濾的布隆過濾器實現。
7 據說你項目用過docker,講一下docker的實現原理,說了虛擬機通常要對內核進行虛擬化,docker則用cgroup和namespace分別進行硬件和命名空間的隔離。
8 項目中遇到的最大挑戰。
9 項目中學到最多的東西
10 有什麼想問
螞蟻財富事業部
一面:
1 億級ip地址過濾
2 排序算法和適用場景
3 數據庫的事務有什麼用
4 數據庫的悲觀鎖和樂觀鎖
5 數據的索引有什麼用,怎麼實現
6 聯合索引的匹配原則
7 數據庫萬級變成億級,怎麼處理。分庫分表,分片規則hash和取餘數。使用mycat中間件實現。
8 redis這種nosql和mysql有什麼區別,講了一遍redis
9 Spring瞭解不,用到了哪些設計模式,說了四個,單例,工廠,代理,觀察者,模板其實也算。
10 web請求的過程,講了瀏覽器到http服務器的過程,再講了mvc的請求處理過程。
11 你的職業規劃
12 沒了。
二面:
沒有二面,好像說是跳過了一輪,直接技術主管面。
三面:
1 項目中的多線程,爲何用chm,還有什麼能夠避免併發問題。
2 平時在看什麼,寫什麼博客,我說分佈式,關注什麼內容,大後端,Hadoop生態。
3 dubbo瞭解麼
4 dubbo的基本架構,幾個組件說一下
5 服務生產者和消費者怎麼進行rpc調用
6 怎麼進行服務註冊發現 zk實現具體說說
7 dubbo的負載均衡怎麼作,講一下具體代碼實現。
8 dubbo的服務容錯怎麼作,怎麼知道服務器宕機了 zk的心跳機制維持服務器鏈接
9 好了我要問的差很少啦。
交叉面:
隔壁部門的技術主管,問了一道算法題。。就沒問別的了。。我也是很醉。。。
題目是鏈表的排序,扯了四、5種方案,轉成數組,直接排序,拆分再排序,順序鏈接等等。。而後我表示不能再優化了。他就說沒別的問題了。。。有點吃驚。
HR面:
1 興趣愛好
2 三年到五年的職業規劃
3 意向公司和城市
4 實習經歷和收穫
5 實習中最大的困難
6 爲何換公司,爲何拒絕菜鳥實習offer
7 你的缺點和優勢
8 你以爲你比其餘人優秀的地方說三個
9 爲何想來咱們部門
10 巴拉巴拉
今日頭條研發面經
今日頭條上海
後臺開發工程師
今日頭條
後端研發工程師
找牛客大佬要了白金碼,跳過死亡筆試,直接視頻面,從3點開始,斷斷續續到晚上8點結束。
每一個面試官給個人感受都是怎麼這麼高冷啊。
1一面
一面:
1 寫一個題,找一個無序數組的中位數
2 寫了個快排,而後讓我找到無序數組第k大的一個數,我說先排序再找,實際上能夠用快排的partition函數。
3 快排的時間複雜度,最壞狀況呢,最好狀況呢,堆排序的時間複雜度呢,建堆的複雜度是多少,nlgn。
4 操做系統瞭解麼,Linux和windows
5 說說Linux的磁盤管理,一臉懵逼
6 Linux有哪些進程通訊方式,五大件
7 Linux的共享內存如何實現,大概說了一下。
8 共享內存實現的具體步驟,我說沒用過
9 socket網絡編程,說一下TCP的三次握手和四次揮手,中間網絡很差,面試官都沒聽清楚,很尷尬
10 跳過網絡,問了項目的一些東西
11 問我如何把docker講的很清楚,我從物理機,虛擬機到容器具體實現稍微說了下。
12 問我cgroup在linux的具體實現,不會。
13 多線程用過哪些,chm和countdownlatch在實習用過
14 不得不吐槽下今天牛客的視頻網速,不知道啥緣由卡的一比,明明下載網速很正常啊,牛客視頻每秒才20k。。瘋狂掉線搞得很蛋疼。
二面:
1 自我介紹
2 Java的集合類哪些是線程安全
3 分別說說這些集合類,hashmap怎麼實現的,扯了不少
4 MySQL索引的實現,innodb的索引,b+樹索引是怎麼實現的,爲何用b+樹作索引節點,一個節點存了多少數據,怎麼規定大小,與磁盤頁對應。
5 MySQL的事務隔離級別,分別解決什麼問題。
6 Redis瞭解麼,若是Redis有1億個key,使用keys命令是否會影響線上服務,我說會,由於是單線程模型,能夠部署多個節點。
7 問我知不知道有一條命令能夠實現上面這個功能。不知道
8 Redis的持久化方式,aod和rdb,具體怎麼實現,追加日誌和備份文件,底層實現原理的話知道麼,不清楚。
9 Redis的list是怎麼實現的,我說用ziplist+quicklist實現的,ziplist壓縮空間,quicklist實現鏈表。
10 sortedset怎麼實現的,使用dict+skiplist實現的,問我skiplist的數據結構,大概說了下是個實現簡單的快速查詢結構。
11 瞭解什麼消息隊列,rmq和kafka,沒細問
12 寫題時間到。第一題:寫一個層序遍歷。
13 第二題:寫一個插入樹節點到一顆排序樹的插入方法,使用遞歸方式找到插入位置便可。
14 第三題:一個有向圖用鄰接矩陣表示,而且是有權圖,如今問怎麼判斷圖中有沒有環。
15 我說直接dfs走到原點即爲有環,剛開始寫的時候我又問了一嘴是否是隻要找到一個就行,面試官說是的,而後我說這樣應該用bfs,有一次訪問到原節點就是有環了。
16面試官問我不用遞歸能不能作這個題,其實我都還沒開始寫。而後我就說沒有思路,他提示我拓撲圖。我沒明白拓撲圖能帶來什麼好處。如今一想,好像當訪問過程當中找不到下一個節點時就說明有環。作一個訪問標記應該就能夠。
17 第四題:一個二叉樹,找到二叉樹中最長的一條路徑。
我先用求樹高的方式求出了根節點的左右子樹高度,加起來即是。
18 而後面試官提示須要考慮某個子樹深度特別大的狀況,因而我用遍歷的方式刷新最大值,用上面那個方法遍歷完整個樹便可。
19 面試官說複雜度比較高,可是因爲時間問題就說結束了。
三面:
三面的面試官真的高冷啊,不苟言笑就算了,我問他問他他都不愛搭理的,搞得我心裏慌得一比,感受涼涼。
1 介紹一下項目
2 你談到的併發技術,chm和countdownlatch怎麼使用的
3 爲何要這麼處理,使用線程池是否是也能夠。我說也能夠
4 操做系統的進程通訊方式,殭屍進程和孤兒進程是什麼,如何避免殭屍進程,我說讓父進程顯示通知,那父進程怎麼知道子進程結束了,答不會。
5 計算機網絡TCP和UDP有什麼區別,爲何迅雷下載是基於UDP的,我說FTP是基於TCP,而迅雷是p2p不須要TCP那麼可靠的傳輸保證。
6 他說不對,我說是否是由於要創建鏈接,開銷比較大,他說不對
7 我說p2p的發送節點不少,因此不是那麼須要各類傳輸保證,他說不對。
8 我說TCP會自動分包而TCP能夠本身定義數據長度。。他仍是說不對。
最後他說算了。咱們問下一個吧。
9 操做系統的死鎖必要條件,如何避免死鎖。
10 寫一個LRU的緩存,須要完成超時淘汰和LRU淘汰。
我說用lhm行不行,他說用linkedlist和hashmap能夠。
因而我就寫了put和get函數,進行了隊頭隊尾操做。
他說get複雜度會不會過高,我瞎掰了半天沒找到辦法,他說那就這樣吧,今天面試到這。
11 媽蛋,過時淘汰的處理我還沒寫呢,你就說結束了,感受涼了啊,我說我要不要把剩下邏輯下完,他說不用,心涼了一大截~
12 而後HR小姐姐讓我等結果了。溜了溜了
騰訊研發面經
騰訊SNG
後臺開發工程師
大概是8月初投的簡歷,當時沒有選事業羣,次日直接被sng撈了,抓着我一頓面試。
一週內就面完了三次面試,接着就開始無盡的等待,整整等了三週左右,終於完成了四面和HR面。
整個過程仍是比較曲折的,技術面試的難度也挺大的,不過他們部門也是Java線,因此還比較有的聊。結果目前還不知道。
1一面
一面:
1 有序數組排序,二分,複雜度
2 常見排序算法,說下快排過程,時間複雜度
3 有N個節點的滿二叉樹的高度。1+logN
4 朋友之間的點對點關係用圖維護,怎麼判斷兩人是不是朋友,並查集,時間複雜度,過程。沒講清楚
1. 初始化元素
2. 實現元素與元素間的聯合操做
3. 實現查找元素所在樹的根節點
4. 解決一個問題,斷定兩個元素是否在同一棵樹上(兩個元素是否相互鏈接)
5 單元點最短路的方法,時間複雜度
6 如何實現關鍵字輸入提示,使用字典樹,複雜度多少,有沒有其餘方案,答哈希,若是是中文呢,分詞後創建字典樹?
7 hashmap的實現講一下吧,講的很詳細了。講一下紅黑樹的結構,查詢性能等。
8 Java中的垃圾回收講一下,講了分代,gc算法,gc root可達性分析等
9 講一下兩個項目你都作了什麼把。
10 除了代碼以外你還學習了什麼技術,框架。
11 死鎖是怎麼產生的
12 線程和進程的區別
13 進程的通訊方式
14 CPU的執行方式
15 代碼中遇到進程阻塞,進程僵死,內存泄漏等狀況怎麼排查。經過ps查詢狀態,分析dump文件等方式排查。
16 Linux瞭解麼,查看進程狀態ps,查看cpu狀態 top。查看佔用端口的進程號netstat grep
17 10g文件,只有2g內存,怎麼查找文件中指定的字符串出現位置。MapReduce分割文件處理。
他說能夠用cat | grep 管道處理。
二面:
1 快排的時間複雜度,冒泡時間複雜度,快排是否穩定,快排的過程
2 100w個數,怎麼找到前1000個最大的,堆排序,怎麼構造,怎麼調整,時間複雜度。
3 一個矩陣,從左上角到右下角,每一個位置有一個權值。能夠上下左右走,到達右下角的路徑權值最小怎麼走。
先說了一下dfs遞歸實現。面試官說要優化。
說了一下用迪傑斯特拉的思路,說能夠。
4 四輛小車,每輛車加滿油能夠走一千米,問怎麼能讓一輛小車走最遠。說了好幾種方案,面試官引導我優化了一下,可是仍是不滿意,最後他說跳過。
5 hashmap的實現,hashtable,concurrenthashmap實現。
6 MySQL的索引,B+樹性質。
7 Linux的cpu 100怎麼排查,top jstack,日誌,gui工具
8 Linux大文件怎麼查某一行的內容。
9 Redis內存數據庫的內存指的是共享內存麼
10 Redis的持久化方式
11 秒殺系統的架構設計
三面:
1 十億個數的集合和10w個數的集合,如何求它們的交集。
集合的數字不重複。
我講了兩次循環,兩次hash,以及排序或者合併等方式。。都不對。後來面試官說是對小數組作hash,而後遍歷大數組便可。我徹底想錯方向了。
2 十億和數找到前100個最大的,堆排序,怎麼實現,怎麼調整。
3 TCP和UDP的區別,具體使用場景呢。
4 TCP四次揮手講一下過程,最後一次ack若是客戶端沒收到怎麼辦。
5 對於socket編程,accept方法是幹什麼的,在三次握手中屬於第幾回,能夠猜一下,爲何這麼以爲。
6 Linux操做系統瞭解麼,瞭解一點點,就沒問了。
7 對於單例模式,有什麼使用場景了,講了全局id生成器,他問我分佈式id生成器怎麼實現,說了zk,問我zk瞭解原理不,講了zab,而後就沒問啦。
8 除了單例模式,知道適配器模式怎麼實現麼,有什麼用
9 回到網絡,剛纔你說到直播場景,知道直播的架構怎麼設計麼,要點是什麼,說了幾個不太對,他說要避免廣播風暴,答不會。
10 Redis和MySQL有什麼區別,用於什麼場景。
11 問了一下最近看什麼書,何時開始寫博客的
12 問了還有幾輪面試,他說這輪我能夠過,有點小驚喜
四面:
三面過了半個多月,終於安排四面了。
1 自我介紹
2 項目,收穫
3 Linux瞭解哪些,基礎命令和知識。問我proc文件系統瞭解麼,答不瞭解。
4 TCP和UDP的核心區別在哪,講了滑動窗口保證可靠有序傳輸,UDP不可靠。TCP須要鏈接而UDP不須要。
5 TCP的四次揮手,time wait狀態有什麼意義。
6 說完這個他問我有什麼想問他的了。
7 我問他爲何隔了這麼久才面試,並且以前三面都只是初試,而後他說最近他在休假,因此就。。。害我擔憂了很久。他說接下來等HR面就好了。
HR面:
1 自我介紹
2 實習收穫
3 臺灣交流體驗
4 以前實習公司的狀況,拿到offer了嗎,會如何選擇呢
5 排一下公司,部門,薪資和城市等因素。
6 你的優缺點,如何改進
7 學生時代最成功的事
8 你的預期薪資
黃小斜是 985 碩士,阿里巴巴Java工程師,在自學編程、技術求職、Java學習等方面有豐富經驗和獨到看法,但願幫助到更多想要從事互聯網行業的程序員們。
做者專一於 JAVA 後端技術棧,熱衷於分享程序員乾貨、學習經驗、求職心得,以及自學編程和Java技術棧的相關乾貨。
黃小斜是一個斜槓青年,堅持學習和寫做,相信終身學習的力量,但願和更多的程序員交朋友,一塊兒進步和成長!
原創電子書:
關注微信公衆號【程序員黃小斜】後回覆【原創電子書】便可領取我原創的電子書《菜鳥程序員修煉手冊:從技術小白到阿里巴巴Java工程師》這份電子書總結了我2年的Java學習之路,包括學習方法、技術總結、求職經驗和麪試技巧等內容,已經幫助不少的程序員拿到了心儀的offer!
英雄不問出處,編程不看出身。這裏是自學編程愛好者的彙集地,也是程序員IT學習資源的藏經閣。點擊關注,一塊兒成爲更優秀的程序員!
程序員3T技術學習資源: 一些程序員學習技術的資源大禮包,關注公衆號【程序員江湖】後,後臺回覆關鍵字 「資料」 便可免費無套路獲取,包括Java、python、C++、大數據、機器學習、前端、移動端等方向的技術資料。
關注公衆號【程序員江湖】後回覆「Java」、「Python」、「C++」、「大數據」、「算法」、「AI」、「Android」、「前端」、「iOS」、「BAT」、「校招」、「筆試」、「面試」、「計算機基礎」、「LeetCode」 等關鍵字能夠獲取對應的免費程序員學習資料。