在拿到網易offer之后,他發了這么一條朋友圈。其實我看到之后心中有很大的感觸:在目標達成之前,我們會處於一種十分煎熬的狀態-----我們會懷疑自己的能力是否與公司要求匹配、會懷疑自己堅持的方向是否正確、會懷疑自己的運氣。但是在自我懷疑的同時,我們也不敢在學習上放松對自己的要求-----我們堅持刷題、做項目、刷面經、投簡歷。但是在收到offer郵件的那一刻,在聽到手機“叮”了一聲打開發現是意向公司的offer短信的那一刻,感覺一切都釋然了。我們熱淚盈眶,我們心花怒放,因為我們覺得一些的堅持和努力都是值得的!

一面:
- 自我介紹
- 實習期間項目相關,然后轉到Spring
- Spring 在項目中用了哪些特性,IOC,及Kafka監聽接口相關實現。
- ThreadPool,Jdk原生線程池,四個參數詳細解釋原理,當線程池中poolSize達到corePoolSize且阻塞隊列已滿,再來一個任務,如何處理
- 多線程實現同步的方式、互斥同步、非阻塞同步
- 解釋Synchronize關鍵字的鎖優化技術,偏向鎖,輕量級鎖,重量級鎖,這些鎖是如何存儲的,偏向鎖撤銷升級為輕量級鎖的過程,結合源碼解釋
- volatile關鍵字語義,內存屏障如何實現,JMM對內存屏障做了哪些優化,volatile的語義增強
- 指令重排序相關及其happen-before時,數據依賴等
- HashMap底層數據結構,如何處理hash沖突,為何HashMap的大小要設置為2的n次冪,為什么IndexFor方法里,需要hash&length-1,為什么HashMap允許null值,resize()過程,多線程下resize為什么會出現死循環,詳細解釋,結合源碼
- HashMap jdk1.8之后,為何轉鏈式結構為紅黑樹,為何長度為8的時候,才轉成紅黑樹
- NIO了解嗎
- 不了解,屬於自己的知識空白區域。但是面試官比較友好,並沒有抓着這一塊不放。
- 闡述一下快排基本原理。easy
- 手寫單例模式。分別問了多線程情況如何處理,什么時候可以破壞單例模式,怎么防止單例模式被破壞
- JMM內存模型,如何保證緩存一致性。
二面:
- 自我介紹
- 介紹實習項目
- Kafka監聽接口如何實現,為何采用Kafka而不是用其他消息隊列
- 實現Kafka監聽接口的時候,遇到哪些坑,采取了哪些措施或者解決方案
- Kafka的基本概念,及特點和優勢。offset+zk+持久化分區日志順序存儲之類的
- MySQL了解嗎,介紹一下InnoDB
- JVM了解嗎,介紹一下,講了垃圾回收機制
- Full GC和Minor GC區別,及各自的觸發條件
- 說說CMS垃圾回收器,及其適用場景
HR面:
- HR小姐姐很漂亮
- HR小姐姐真的很漂亮
- 問題都比較中規中矩,沒有一開口就讓我講一個冷笑話
- 有沒有實習
- 在哪里實習
- 負責什么系統
- 為什么要讓我獨立負責
- 手頭有沒有其他offer
- offer薪資有多少
- 哪里人 以后打算在哪里發展 是否接受入職前實習
- 是否接受996(然后后來才知道我們部門並不是996)
總結:
問題都比較的基礎,但是想要回答好卻並不容易,因為很多問題屬於你想答得很深就可以深不見底,想答得淺一點一兩句話就講完了的那種。在平時學習的過程中,一定要注重培養自己的知識體系,不要只會死記硬背一些所謂的面試題標准答案。面試其實是一件量體裁衣的事情,很多東西(包括某些專業知識)並不存在一個非常量化的標准,重點是如何在面試官面前展現出自己獨特的一面。假如在回答某些問題時你直接把從網上背的“標准答案”說出來,面試官就會覺得你這個人對知識沒有自己的理解。面試官可是身經百戰了,什么樣的候選人沒見過?所以想要在面試中和面試官談笑風生,一定要在踏踏實實打牢專業基礎的前提下,再努力提升自己的編碼能力。如此,你想不拿一個好的offer都難!
學習方法:
以下所展示的全部資料,均可以免費分享 轉發+關注,然后私信回復“電子書”即可。
(1)多刷題
自己多刷一些面試題是非常重要的,即使是在自己不需要面試的情況下,也要經常了解現在的大廠小廠面試都會問一些什么?現在比較流行的技術是什么等等諸如此類。那么哥們是如何刷題的呢?刷題主要分為Java技術以及算法兩大類,搜集了目前比較新的一些題冊,包括【Java核心知識】以及【算法刷題】,如算法方面就有LeetCode。
Java企業筆試題集:

(2)多看看技術牛的實戰書
實際上很多人目前的一個狀態是缺乏實戰經驗,或者說是不知道該如何上手實戰。那么,看一些技術比較過硬的大牛寫的實戰書籍對自己是很有好處的,多少能夠學習到一些實戰經驗。目前我手上整理到的實戰書籍也算是比較全面,包括Spring全家桶、JVM、並發編程技術、Redis相關、MySQL調優、Tomcat、ZooKeeper等高級技術。

(3)多交流,多思考
最后要強調的重點就是——多交流,多思考。現在很多程序員陷入一個怪圈,整天只會在辦公室里機械的工作,實際上程序員要想有很大很明顯的進步,交流是少不了的。那么怎么結識比自己厲害的技術牛呢?實際上渠道有很多,哥們個人的做法是:①看一些技術直播,在直播間交友;②加一些技術性的交流群,多交流問題;③參加一些線下活動,如面基、研討會等等。
寫在最后
學習如攀登,雖然有身心的疲憊,但更有沿途的優美風光,更無論登頂之后的極目遠眺。之后,你總會感嘆曾經的付出是值得的。
以上內容中所有的學習資料、面試資料,均可以免費提供,希望大家金三銀四面試順利,拿下自己心儀的offer!
答案獲取方式:資料獲取方式:點擊鏈接《Java面試BAT通關手冊》,覆蓋了Java核心技術、JVM、Java並發、SSM、微服務、數據庫、數據結構等等。