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