攜程&拼多多研發面經

攜程&拼多多研發面經

攜程面經是參考我同窗的面試經驗寫出來的,由於面試官的問題可能不怎麼更新,因此有緣的小夥伴看看,說不定就面到了。java

攜程面經mysql

一面:git

租車事業部面試

1 項目講一下redis

2 多線程併發讀取數據庫可能出現的問題,如何解決線程數不夠帶來的問題,我說了幾種方式,一個是使用緩存,一個是使用數據庫鏈接池,他問我能不能借助相似IO處理的方式來優化,因而我說了使用AIO異步處理。他問我有沒有用過,我就大概說了一下。算法

3 Java的數據結構瞭解哪些,說一下linkedlist和ArrayList的區別,若是使用它們來存儲字符串,哪一個更合適呢,若是要進行字符串的增刪改查和拼接操做呢。sql

4 多個string常量相加會有什麼問題,我說會產生多個string,實際上是會使用stringbuilder進行append操做,每次相加都會新建一個stringbuilder對象,比較低效。數據庫

而使用stringbuilder對象直接append則只有一個stringbuilder對象。編程

當使用for循環時,string相加會優化成一個stringbuilder進行append操做。設計模式

5 map是否線程安全,爲何不是呢,如何實現線程安全呢,除了用chm和hashtable還有別的方式嗎,我說本身實現一個map而後重寫get和put方法,加synchronized便可。

6 說幾種你瞭解的設計模式,讓我選一種寫一下,果斷寫了枚舉類單例。

7 http的方法有哪些,get和post的區別,get的url長度是否有限制,url很長會有什麼問題,我說了安全問題,長度限制,以及處理麻煩,好像不是他想要的答案。

8 MySQL的索引怎麼加,何時用不到索引,怎麼創建索引。

9 線上報錯了怎麼辦,log日誌怎麼打的,使用應用日誌會有什麼缺點,若是是全鏈路調用的日誌要怎麼記錄,我聯想到elk,不過沒講清楚。

10 redis的數據結構有哪些,使用過哪些。

11 git大家是怎麼用的,有幾個分支,上線報錯了怎麼辦,能夠直接回滾麼。

12 Java的volatile關鍵字是怎麼實現的。

13 java爲何要有多級的類加載器

換了個部門又面了一次

酒旅事業部:

1 拿出我寫的筆試題,問我當時怎麼想的,我就說使用順序查找,他說這個複雜不達標,只能到o(n),可是不能到O(lgn),讓我優化。

我剛開始說在輸入時去作判斷,他說要優化代碼,不能直接在輸入作。

因而開始思考,而後他給了我提示,說能夠用hashmap,引導我說出key爲日期,value爲訂單號的作法,而後我又以此類推說了另外一個日期的操做。

最後終於想出來能夠把開始日期到結束日期之間的時間都放到key裏,而後只要命中就是符合條件的選項,這樣的複雜度就是O(1)了。由於輸入時直接放入map,用的時候讀取便可。

2 問我項目裏的一些東西。

3 網絡編程方面,select,poll,epoll的區別,優缺點,使用場景。

4 Java的多線程

5 MySQL的聚簇索引和非聚簇索引,用不到索引的狀況,非聚簇索引能有多個麼,索引能建不少麼,會有什麼問題。

6 MySQL和redis配合,寫一下get和set方法對應的流程圖,先更新緩存仍是數據庫,不命中數據怎麼辦,而後又問若是是多線程的進行這類操做呢,我剛開始說事務,他說不是的,我又說用redis代理來完成這一操做,保證redis的讀寫自動觸發mysql的讀寫,保證其事務性,可是他說這樣太依賴於Redis了,會出問題。而後他問我通常如何保證多線程併發安全,我說可使用鎖,他說若是是集羣環境呢,我說那麼用分佈式鎖吧。他問我通常怎麼實現分佈式鎖,我就說了redis和zk。

7 讓我設計一系列關於權限管理的表,問我須要哪些表,我說就用戶表,權限表吧,而後引導我說還須要一張職位表,可是一個用戶可能有多個權限,而且權限是可變的,能夠是多對多的關係,因而他又引導我寫出了用戶-權限的鏈接表。同理還須要一張職位-權限的鏈接表,因而一共須要五張表,能夠說面試官仍是很善良的。

8 一道開放智力題

一家餐館,有6張小桌,四張大桌,平均用餐1小時, 門口有10個等待的人,6我的是一塊兒的,另外2我的和2我的是分開的。問我在這些條件下如何預估咱們兩我的要等多久才能吃到飯,我就巴拉巴拉說了一堆,最後引導我說出了小桌要等60/6 = 10,前面兩組20分鐘,一共是30分鐘。

拼多多

以前拼多多學霸批掛了,因此又來面了一次正式批,不一樣於學霸批,此次面試官和hr都再也不熱情,而是給我一種很不耐煩的感受,面試體驗不好,因此草草面完了。

一面:

1 項目

2 筆試題,循環小數,說一下思路

3 說一下SpringMVC和Spring,hibernate

4 MySQL數據庫和Redis說一下

5 分佈式鎖怎麼使用,setnx和設置超時是兩條指令,怎麼保證原子性,可使用lua腳本保證在事務中執行。

6 大家的Redis是怎麼用的,如何作緩存更新。

7 jvm內存分區,線程池工做原理。

8 算法題,abbaabbaaa這樣的字符串,怎麼變成aaabbbaaa,這種形式的字符串

。其中a和b的個數均可以是0到n個。

剛開始說用dfs刪除元素,後來講了用map和其餘容器來存元素個數,都不對,

最後面試官說,能夠用兩個for循環設置i和j兩個斷點

二面

HR嘰裏呱啦,很不耐煩的樣子

1 拿了幾個offer了

2 對拼多多有什麼瞭解

3 咱們工做壓力大你能接受麼

4 薪酬你預計要多少

5 城市選擇問題

6 女友,家裏人的想法

7 職業規劃。

三面

1 算法題,兩個棧實現一個隊列,而且要維護隊列的最小值。

沒答好,很煩。

2 而後問基礎,Java容器,linkedhashmap,3 hashmap實現,treemap實現

3 Java多線程的狀態,實現方式,通訊方式

4 MySQL,redis巴拉巴拉

5 單點登錄實現,cookie不能跨域怎麼辦。可否直接綁定ip訪問session

6 項目經歷介紹

感受面試官態度不太好,也就隨便面完了。

▼更多精彩內容

今日頭條研發面經

螞蟻金服研發面經

百度研發面經整合版

拼多多&快手研發面經

美團&京東研發面經

大俠,這裏有乾貨!

喜歡記得來一個

--------------------- 本文來自 How_2_Play_Life 的CSDN 博客 ,全文地址請點擊:https://blog.csdn.net/a724888...

相關文章
相關標籤/搜索