復習過程
- 項目準備;
- leetcode:刷完劍指之后每天會刷2-4道leetcode
- java基礎: 主要刷面經、重點掌握垃圾回收機制
- 操作系統: 之前沒學過,用幾天時間看了一下最重要的進程線程、死鎖、消費者生產者、哲學家問題、銀行家算法
- 計算機網絡:花幾天時間復習了一下,重點復習tcp(三次握手四次揮手擁塞控制流量控制)、udp、https
- 數據庫: 重點了解了索引的實現以及引擎的區別
- 數據結構和算法: 主要通過劍指offer和leetcode進行復習
- 其他:期間也做過大大小小好幾次筆試,還有一些往屆練習卷
騰訊
一面(電話面)
- 自我介紹
- 介紹項目以及項目遇到的難點
- java的hashmap是否安全?hashmap、hashtable、concurrenthashmap的區別、底層和實現
- mysql索引的底層實現
- jvm垃圾回收機制
- tcp、udp區別和適用場景
- tcp三次握手、四次揮手,為什么揮手不能只有三次
- 線程和進程的區別
- 進程通信的方式有哪些
- 堆是線程共有還是私有,堆是進程共有還是私有,棧呢
- 了解過協程嗎(我:攜程???不了解嗚嗚嗚)
- mysql查詢優化
- 快速排序的時間復雜度、原理(口述算法)
- 最近在看什么書
- 除了騰訊還投了其他的公司嗎
- 問我愿不愿意轉go,并推薦我了解一下協程,最后讓我耐心等待,面試的人太多,需要對面試的同學進行挑選,兩周內會告知我結果
- 有什么想問的(對我的評價和學習建議)
二面(現場面)
- 自我介紹
- 問我為什么發現自己不喜歡做客戶端(簡歷中有一個安卓實習項目)而想做后臺
- 介紹項目(一個電商小程序)
- 項目中的商品是否有考慮過xxx(忘記叫什么了,意思就是是否有考慮過同一種商品有不同的顏色、規格,在數據庫中如何區分這些不同)
- 介紹項目的支付流程,并畫一下流程(白板)
- 介紹一下訂單狀態碼的含義,以及交易過程中訂單狀態碼如何變化
- 如何防止商品的超賣現象
- 項目是否具有秒殺功能
- 并發的時候,如何保證性能
- 在分庫之后,如何設計id
- 在分庫后,一條插入請求,在上層不做處理,如何直接在數據庫找到相應的庫并插入庫中的某個表
- 當服務器的cpu一直很高時,如何找出原因
- 是否用過調試工具
- 當項目一直無法訪問的時候,如何定位錯誤
- 介紹一下aop和ioc
- 如何將一個ip地址由點分制(xxx.xxx.xxx.xxx)和int類型間進行相互轉化
- 如何判斷一個數是否為2的n次方
- 可實習時間
- 是否愿意轉go
- 有什么想問的(對我的評價和學習建議)
hr面(電話面)
- 自我介紹
- 介紹一下實習經歷
- 實習中遇到的困難以及如何解決這些困難
- 未來計劃,是否讀研
面試總結
一面的問題都很中規中矩,唯一卡住的就是協程了,確實不會,只能和面試官說我不了解。
主要和大家分享一下二面的面試體驗吧。因為二面自我感覺答得不是很好,有很多問題當時沒記錄下來,現在一時也想不起來。所以上面的面經并不完整。
當時面試完走出大廈以為自己掛掉了,結果刷新了一下狀態發現變為hr面,真的超級意外。現在想想大概是因為我在遇到不會的問題時,沒有直接說自己不會,盡量把答案往自己知道的方向回答。
- 第7題,項目沒有秒殺功能我也沒做過,但是了解過一些,只能和面試官說確實沒有,然后讓他聽我講一下我的實現思路,期間又讓面試官挖出了很多問題考我TAT
- 第9題、第10題,面試官要求我在分庫的場景下回答問題,我先回答了分表情況下如何實現,他肯定了我在分表下的做法,但是分庫情況還需要另外考慮,我實在想不出來,才和他說自己沒有辦法實現,但這總比我直接說自己不會好。
- 第13題,如何定位錯誤的時候,先講了一下無法訪問的幾種情況,以及大量tcp處于time_wait、close_wait這兩種狀態的原因和解決方法。
- 面試結束后,等電梯的時候突然想起面試中一個一直理解錯誤導致解不出的問題,發現自己想歪了之后趕緊編輯完答案又給面試官發了過去,這個答案后來得到了面試官的認可。
寫在最后
作為一名即將求職的程序員,面對一個可能跟近些年非常不同的 2019 年,你的就業機會和風口會出現在哪里?在這種新環境下,工作應該選擇大廠還是小公司?已有幾年工作經驗的老兵,又應該如何保持和提升自身競爭力,轉被動為主動?
就目前大環境來看,跳槽成功的難度比往年高很多。一個明顯的感受:今年的面試,無論一面還是二面,都很考驗Java程序員的技術功底。
最近我整理了一份復習用的面試題及面試高頻的考點題及技術點梳理成一份“
Java經典面試問題(含答案解析).pdf和一份網上搜集的“
Java程序員面試筆試真題庫.pdf”(實際上比預期多花了不少精力),
包含分布式架構、高可擴展、高性能、高并發、Jvm性能調優、Spring,MyBatis,Nginx源碼分析,Redis,ActiveMQ、Mycat、Netty、Kafka、Mysql、Zookeeper、Tomcat、Docker、Dubbo、Nginx等多個知識點高級進階干貨!
由于篇幅有限,為了方便大家觀看,這里以圖片的形式給大家展示部分的目錄和答案截圖!有需要的朋友可以加入
爬坑之路免費領取
Java經典面試問題(含答案解析)
阿里巴巴技術筆試心得