1. 程式人生 > >Java程式設計師從京東、阿里、攜程面試回來, 已成功拿到京東offer

Java程式設計師從京東、阿里、攜程面試回來, 已成功拿到京東offer

640?wx_fmt=jpeg

阿里巴巴(一面)

阿里找了一個北郵學長的內推,準確來說應該是直推,是他幫我直接錄的簡歷,他本科進的阿里螞蟻金服,厲害吧?是真的佩服。第一次在官網上填資料,想想馬雲有多出名,想想螞蟻金服這樣的頂級技術,有些興奮,有些期待。

錄完簡歷後等待簡歷評估,原來,找內推不一定能得到面試機會,能不能得到面試機會要經過簡歷評估(我這才知道,原來內推免筆試可不是那麼容易的),畢竟內推能免去線上筆試直接面試,網際網路第一梯隊像百度、阿里,騰訊的筆試真的很有難度,做過前幾年這些公司的筆試題,真的太難了。在阿里的校招群裡看到很多研究生研究演算法,前端,Java研發的,簡歷評估後直接變成已回絕沒有得到面試機會。心想,我一個研究生,Java研發都是自學的,專案都是自己設計的需求,簡歷也就一張紙,究竟能不能得到面試機會?

填完資料的一個星期後收到了支付寶的面試電話,突然變得好緊張,居然得到了面試的機會。

自我介紹

簡單的介紹一下你的專案

一個有500個使用者的廣播系統,你怎麼做效能優化

當用戶提交請求後,卻立即按撤回按鈕,涉及效能的資料落地問題你怎麼處理

Lucene底層實現原理,它的索引結構

ibatis跟hibernate的區別

ibatis是怎麼實現對映的,它的對映原理是什麼

Java I/O底層細節,注意是底層細節,而不是怎麼用

你對mysql有什麼瞭解

說一下資料庫事務的四個特性,為什麼mysql事務能保證失敗回滾

mysql資料庫的鎖有多少種,怎麼編寫加鎖的sql語句

mysql什麼情況下會觸發表鎖

頁鎖、樂觀鎖、悲觀鎖

tcp三次握手的過程

程序跟執行緒的區別

redis的操作是不是原子操作

ArrayList跟LinkedList的底層實現原理,使用場景

B+樹

一道演算法題,在一個整形陣列中,有正數有負數,找出和最大的子串

動態規劃的思想

你有什麼想問的

阿里一面過後變得懷疑人生,真的好多不會好多底層原理沒答出來,第二天查狀態,變成已回絕了。原來學習不能只學表面,作為一名研發人員,只知道怎麼用是不夠的,更多的應該知道底層原理,不然出現了效能瓶頸你怎麼優化?你怎麼扛得住每秒千萬甚至億的併發量?

有很多底層問題沒答出來,接下來幹嘛?學啊!

640?wx_fmt=jpeg

攜程(一面)

攜程又找了內推,直接面試。

自我介紹

介紹一下專案

你的併發專案有做過壓測嗎

haspmap的底層實現原理,怎麼解決衝突問題

haspmap是否執行緒安全

object物件的常用方法

你有什麼想問的

攜程一面後被淘汰,其實問題很簡單,當初被淘汰了感覺很不解,有些鬱悶,只不過是稍微猶豫了一下執行緒安全問題而已,最後也答對了。但現在想起來,連haspmap是否執行緒安全都要考慮,根本就不是一個合格的Java工程師,被淘汰也是理所當然的。突然感覺自己學的好不紮實,變得有些焦慮,連java基礎都存在問題,接下來幹嘛,學啊!

被阿里跟攜程拒絕後的一個多星期,沒有接到任何面試電話,筆試了美團、今日頭條,都掛了,變得沒什麼心情,其實之前也學了很多Java的技術,但還是不牢固不全吧,繼續補吧。

雖然很低落不過還是堅持天天看書。去牢實各種Java基礎,thinking in java再看一遍;多執行緒,concurrent包;集合類,每一個集合類的底層,haspmap的底層原始碼,concurrentHaspMap的底層原始碼,更多地區理解為什麼,而不是怎麼樣;看虛擬機器從記憶體管理到類載入;java併發程式設計的藝術;複習servlet/jsp技術;理解ibatis的技術要點,ibatis的底層原始碼;複習作業系統資料庫計網每一個講過的重點;理解MySQL的技術要點;spring的核心技術跟思想IOC、AOP、springMVC;Lucene的索引結構,檢索特點,為什麼拿它來取代資料庫的全文檢索;Redis技術要點,從五種資料結構到樂觀鎖事務再到資料安全主從複製持久化…..;牢記Linux系統的常用命令與操作;經典的設計模式,單例懶漢惡漢等等;複習資料結構平衡二叉樹B樹B+樹,複習演算法刷leetcode…..當然,還有很多很多。

640?wx_fmt=jpeg

京東(筆試+兩面技術+一面hr,拿到offer)

一面:

自我介紹

介紹一下專案

java多執行緒有哪幾種實現方式

CountDownLatch

Spring的核心技術

關於資料庫事務說出你知道的所有

跟面試官聊天,說了很多關於登入驗證的技術問題(有些緊張)

你有什麼想問的

二面:

自我介紹

介紹一下專案

把你知道的java的concurrent包的技術全部說出來(volatile、鎖重入,LinkedTransferQueue位元組追加提高併發度技術,ConcurrentHaspMap結合volatile的happen-before讀取優化)

redis的配置檔案(AOF&&Snapshot&&主從複製)

WebSocket長連線問題

秒殺業務場景設計(事務,邏輯調整,行級鎖,資料庫併發度、mybatis呼叫儲存過程)

會不會寫前端(會,但也僅是會寫,會寫jQuery,CSS3)

你平時都用什麼開發工具?IntelliJ IDEA相比Ecplise有什麼好(快捷鍵)

跟面試官聊天,討論了很多關於後臺大併發量的問題

你今後的研究方向是什麼

你有什麼想問的

京東的問題都答出來了,感覺特別是二面真的很體現一個人的研發功底,幸好都答出來了,跟面試官聊他們部門的後端併發技術問題,簡直受益匪淺。搜狐的我就不發出來了,最後成功拿到了京東的京東offer