1. 程式人生 > >別人的java面經

別人的java面經

二 : 面經分享

具體的面經都比較長,這裡大概介紹一下面試的情況,然後我會放上面經的連結供大家查閱。

1 阿里面經

崗位是研發工程師,直接找螞蟻金服的大佬進行內推。

我參與了阿里巴巴中介軟體部門的提前批面試,一共經歷了四次面試,拿到了口頭offer。

然後我也參加了螞蟻金服中介軟體部門的面試,經歷了三次面試,但是沒有走流程,所以面試中止了。

最後我走的是螞蟻金服財富事業群的流程,經歷了四次面試,包括一次交叉面,最終拿到了螞蟻金服的意向書,評級為A。

阿里的面試體驗還是比較好的,至少不要求手寫演算法,但是非常注重Java基礎,中介軟體部門還會特別安排Java基礎筆試。

2 騰訊面經

崗位是後臺開發工程師,我沒有選擇意向事業群。

SNG的部門撈了我的簡歷,開始了面試,他們的技術棧主要是Java,所以比較有的聊。

一共經歷了四次技術面試和一次HR面試,目前正在等待結果。

騰訊的面試一如既往地注重考查網路和***作系統,並且喜歡問Linux底層的一些知識,在這方面我還是有很多不足的。

3 百度面經

崗位是研發工程師崗位,部門包括百度智慧雲的三個分部門以及大搜索部門。

百度的提前批面試不走流程,所以可以同時面試好多個部門,所以我參加百度面試的次數大概有12次左右,最終應該是拿了兩個部門的offer。

百度的面試風格非常統一,每次面試基本都要到電腦上寫演算法,所以那段時間寫演算法寫的頭皮發麻。

4 網易面經

面試部門是網易雲音樂,崗位是Java開發工程師。

網易是唯一一家我去外地面試的公司,也是我最早去實習的老東家。

一共三輪面試,耗時一個下午。

網易的面試比我想象中的要難,面試官會問的問題都比較深,並且會讓你寫一些結合實踐的程式碼。

5 頭條面經

崗位是後臺研發工程師,地點選擇了上海。

我參加的是位元組跳動的內推面試,當時找了一個牛友要到了白金碼,再次感謝這位頭條大佬。

然後就開始了一下午的視訊面試,一共三輪技術面試,每一輪都要寫程式碼,問問題的風格有點像騰訊,也喜歡問一些底層知識,讓我有點懵逼。

目前還在等待結果。

6 快手面經

崗位是Java開發工程師,面試我的部門好像是基礎架構部門。

快手是兩輪視訊面試加上一輪hr面試。

7 拼多多面經

崗位是業務平臺研發工程師。

當時在學校裡參加了面試,過程是比較順利的,問的問題也都比較有難度。

自我感覺良好,但是最後卻收到了拒信,還是挺可惜的。

三:Java後端技術專欄

這些專欄中有一些文章是我自己原創的,也有一些文章是轉載自技術大牛的,基本都是是我在學習Java後端的兩年時間內陸續完成的。

總的來說算是比較全面了,做後端方向的同學可以參考一下。

本專欄主要介紹Java基礎,並且會結合實現原理以及具體例項來講解。同時還介紹了Java集合類,設計模式以及Java8的相關知識。

帶你走進JVM的世界,整合高質量文章以闡述虛擬機器的原理及相關技術,讓開發者更好地瞭解Java的底層執行原理以及相應的調優方法。

本專欄主要介紹Java併發程式設計相關的基本原理以及進階知識。主要包括Java多執行緒基礎,Java併發程式設計基本原理以及JUC併發包的使用和原始碼解析。

Java網路程式設計一直是很重要的一部分內容,其中涉及了socket的使用,以及Java網路程式設計的IO模型,譬如BIO,NIO,AIO,當然也包括Linux的網路程式設計模型。

瞭解這部分知識對於理解網路程式設計有很多幫助。另外還補充了兩個涉及NIO的重要技術:Tomcat和Netty。

從這裡開始開啟去往JavaWeb世界的大門。什麼是J2EE,什麼是JavaWeb,以及這個生態中常用的一些技術:Maven,Spring,Tomcat,Junit,log4j等等。

我們不僅要了解怎麼使用它們,更要去了解它們為什麼出現,其中一些技術的實現原理是什麼。

本專欄主要講解Spring和SpringMVC的實現原理。
Spring是最流行的Java框架之一。

本專欄文章主要包括IOC的實現原理分析,AOP的實現原理分析,事務的實現原始碼分析等,當然也有SpringMVC的原始碼解析文章。

本專欄介紹MySQL的基本知識,比如基本架構,儲存引擎,索引原理,主從複製,事務等內容。當然也會講解一些和sql語句優化有關的知識。

同時本專欄裡也介紹了Redis的基本實現原理,包括資料結構,主從複製,叢集方案,分散式鎖等實現。

本專欄介紹分散式的基本理論和相關技術,比如CAP和BASE理論,一致性演算法,以及ZooKeeper這類的分散式協調服務。

在分散式實踐方面,我們會講到負載均衡,快取,分散式事務,分散式鎖,以及Dubbo這樣的微服務,也包括訊息佇列,資料庫中介軟體等等。

本專欄涵蓋了大後端的眾多技術文章,當你在Java後端方面有一定基礎以後,再多瞭解一些相關技術總是有好處的。

除了Java後端的文章以外,還會涉及Hadoop生態,雲端計算技術,搜尋引擎,甚至包括一些資料探勘和AI的文章。

總的來說選取了一些不錯的基礎類文章,能讓你對大後端有一個更直觀的認識。

四:Java工程師書單

我之前專門寫了一篇文章介紹了Java工程師的書單,可以這裡重點列舉一些好書,推薦給大家。

《計算機網路:自頂向下》這本從應用層講到物理層,感覺這種方式學起來更輕鬆。

《圖解演算法》《啊哈演算法》
這兩部書籍非常適合學習演算法的入門,前者主要用圖解的形式覆蓋了大部分常用演算法,包括dp,貪心等等,可以作為入門書,後者則把很多常用演算法都進行了實現,包括搜尋,圖,樹等一些比較高階的常用演算法。

《劍指offer》這本書還是要強烈推薦的,畢竟是面試題經常參考的書籍,當然最好有前面基本的鋪墊再看,可能收穫更大,這本書在面試之前一般都要嚼爛。如果想看Java版本的程式碼,可以到我的Github倉庫中檢視。

《Java程式設計思想》這本書也是被譽為Java神書的存在了,但是對新手不友好,適合有些基礎再看,當然要選擇性地看。我當時大概只看了1/3

《Java核心技術卷一》
這本書還是比較適合入門的,當然,這種厚皮書要看完還是很有難度的,不過比起上面那本要簡單一些

《深入理解JVM虛擬機器》
這本書是Java開發者必須看的書,很多jvm的文章都是提取這本書的內容。JVM是Java虛擬機器,賦予了Java程式生命,所以好好看看把,我自己就已經看了三遍了。

《Java併發程式設計藝術》
這本書是國內作者寫的Java併發書籍,比上面那一本更簡單易懂,適合作為併發程式設計的入門書籍,當然,學習併發原理之前,還是先把Java的多執行緒搞懂吧。

《深入JavaWeb技術內幕》
這本書是Java Web的集大成之作,涵蓋了大部分Java Web開發的知識點,不過一本書顯然無法把所有細節都講完,但是作為Java Web的入門或者進階書籍來看的話還是很不錯的。

《Redis設計與實現》
該書全面而完整地講解了 Redis 的內部執行機制,對 Redis 的大多數單機功能以及所有多機功能的實現原理進行了介紹。這本書把Redis的基本原理講的一清二楚,包括資料結構,持久化,叢集等內容,有空應該看看。

《大型網站技術架構》
這本淘寶系技術指南還是非常值得推崇的,可以說是把大型網站的現代架構進行了一次簡單的總結,內容涵蓋了各方面,主要講的是概念,很適合沒接觸過架構的同學入門。看完以後你會覺得後端技術原來這麼博大精深。

《分散式服務框架原理與實踐》
上面那本書講的是分散式架構的實踐,而這本書更專注於分散式服務的原理講解和對應實踐,很好地講述了分散式服務的基本概念,相關技術,以及解決方案等,對於想要學習分散式服務框架的同學來說是本好書。

《從Paxos到Zookeeper分散式一致性原理與實踐》
說起分散式系統,我們需要了解它的原理,相關理論及技術,這本書也是從這個角度出發,講解了分散式系統的一些常用概念,並且帶出了分散式一哥zookeeper,可以說是想學分散式技術的同學必看的書籍。

《大資料技術原理與應用》
作為大資料方面的一本教材,廈大教授寫的這本書還是非常讚的,從最基礎的原理方面講解了Hadoop的生態系統,並且把每個元件的原理都講得比較清楚,另外也加入了spark,storm等內容,可以說是大資料入門非常好的一本書了。

五:技術大牛推薦

1 江南白衣
這位大大絕對是我的Java啟蒙導師,他推薦的Java後端書架讓我受益匪淺。

2 碼農翻身
劉欣,一位工作15年的IBM架構師,用最淺顯易懂的文章講解技術的那些事,力薦,他的文章幫我解決了很多困惑。

3 CoolShell
陳皓老師的部落格相信大家都看過,乾貨很多,酷殼應該算是國內最有影響力的個人部落格了。

4 廖雪峰
學習Git和Python,看它的部落格就夠了。

5 HollisChuang
阿里一位研發大佬的部落格,主要分享Java技術文章,內容還不錯。

6 樑桂釗
阿里另一位研發大佬,部落格裡的後端技術文章非常豐富。

7 chenssy
這位大佬分享的Java技術文章也很多,並且有很多基礎方面的文章,新手可以多看看。

8 Java Doop
一位魔都Java開發者的技術部落格,裡面有一些不錯的講解原始碼的文章,數量不是很多,但是質量都挺不錯的。

六:學習資源分享

學習Java後端兩年的時間裡,接觸過很多的資料,網站和課程,也走了不少彎路,所以這裡也總結一些比較好的資源推薦給大家。

0 CSDN和部落格園,主流的技術交流平臺,雖然廣告越打越多了,但是還是有很多不錯的博文的。

1 importnew 專注Java學習資源分享,適合Java初學者。

2 併發程式設計網,主要分享Java相關進階內容,適合Java提高。

3 推酷 一個不錯的技術分享社群。

4 segmentfault,有點像國內的Stack Overflow,適合交流程式碼問題的地方。

5 掘金,一個很有極客範的技術社群,強推,有很多技術大牛分享優質文章。

6 開發者頭條,一個整合優質技術部落格的社群,裡面基本上都是精選的高質量博文,適合技術學習提升。

7 v2ex,一個極客社群,除了交流技術以外還會有很多和程式設計師生活相關的話題分享。

9 簡書
簡書上有些技術文章也很不錯,有空大家也可以去看看。

10 Github

有一些GitHub的專案還是非常不錯的,其中也有倉庫會分享技術文章。

七:筆試經驗

提前批的筆試其實不是很多,我參加了網易,網易遊戲,拼多多等公司的筆試,應該都是低分飄過。

我的演算法基礎比較一般,讀研之前0基礎,所以這方面不是很有發言權,大概說幾點我的學習經驗。

1 打好資料結構基礎

2 先易後難,看一些基礎的演算法書籍,比如《圖結演算法》,《啊哈演算法》等等。

3 劍指offer刷起來,兩到三遍,做到胸有成竹

4 LeetCode刷個200題左右,記得二刷,做好總結。

5 到牛客網做公司的歷年真題,熟悉題型,保持手感。
 

劍指offer指南和LeetCode刷題指南可以在我的GitHub中參閱:

其中LeetCode指南是參考@CyC2018大佬的文章。

更詳細的內容後續會在我的公眾號更新:程式設計師江湖

八 : 面試經驗

面試主要考的還是你的基礎知識,需要你對Java後端技術棧有一個全域性上的把握,具體說起來就太多了。

我個人也總結了一些面試方面的經驗,主要是一些技巧。

1 做好自我介紹和專案總結,把握你發言的主動權

2 搞清楚簡歷上的技術點,兵來將擋水來土掩

3 注意分點答題,思路清晰,也更容易講清楚原理。

4 壓力面下保持冷靜,不要回懟面試官

5 HR面試注意常用技巧,可以提前準備。