先后面試了各大小公司,拿了一些 offer,有阿里,滴滴,快手,達達,得物等公司。面試的公司大部分都能過,所以這里給大家分享下自己的經(jīng)驗,也給自己做個歸檔,希望能給正在準(zhǔn)備跳槽,找工作的朋友一點幫助,這里主要分享下阿里面試的經(jīng)歷!

阿里一面
自我介紹,聊項目, 這邊挺常規(guī)的,從項目入手。
解析 Excel 為什么用 POI ? POI 存在的問題?
還知道哪些解析 Excel 的工具嗎?
你們項目中用過 MQ,平時都用 MQ 來做什么?
你處理過 MQ 得冪等問題,當(dāng)時是怎么做的?
MQ 的可靠性怎么保證?
redis 你們都用來做什么?
redis 的持久化機制?
怎么樣保證 redis 的高可用?
HashMap 和 ConcurrentHashMap 的區(qū)別?
ConcurrentHashMap 不同版本的差異?
用過多線程嗎?
多線程的幾種實現(xiàn)方式。
做過微服務(wù)開發(fā)嗎?
說一說對重構(gòu)的看法
有什么問題要問我的嗎?
時間不長,大概二十分鐘,面試官人不錯。一面結(jié)果通過。
阿里二面
過了一個星期,由于當(dāng)?shù)赜邪⒗锏淖庸?就去了子公司的會議室進行視頻面試。
二面看上去是個組長的人,年紀(jì)并不輕。同樣的自我介紹開始,然后聊來深圳發(fā)展的意愿,個人的情況,然后問了一下做的項目,就開始問問題了。
項目中處理了哪些格式的數(shù)據(jù)類型?
數(shù)據(jù)傳輸過程用的什么加密?
對稱加密和非對稱加密的區(qū)別?
http 和 https 的區(qū)別?
為什么 https 使用混合加密的方式?
說一說 JVM 調(diào)優(yōu)的思路及你是怎么樣調(diào)優(yōu)的。
JVM 常見的算法。
抽象類和接口的區(qū)別和應(yīng)用場景? ( 挺新鮮的,第- -)次碰到 )
平時有沒有用到什么設(shè)計模式?
看過什么源碼沒有?
什么是 SpringAOP?
AOP 實現(xiàn)的原理。
sql 優(yōu)化的思路。
索弓|實現(xiàn)原理。
有時候索引失效,為什么?
問了我期望薪資,本來說月薪了,后面他說他們那里是按年薪算的。然后讓我等一下 ,他去找部長去概去了二十分鐘。
二面結(jié)果:通過。
阿里三面
自我介紹,然后開始聊項目。
數(shù)據(jù)采集的時候有沒有對數(shù)據(jù)進行校驗?
有沒有做加密處理?
對稱加密和非對稱加密的區(qū)別?
如何保證數(shù)據(jù)不丟失呢? ( 對賬)
你們項目中 redis 用來干什么了?
redis 常用的數(shù)據(jù)類型?
redis 持久化機制?
分布式鎖的實現(xiàn)?
場景題:一個 SQL 的 TOP N 問題
JVM 參數(shù)調(diào)優(yōu)及 JVM 內(nèi)存結(jié)構(gòu)。
常見的垃圾回收算法。
dubbo 整個調(diào)用過程。
SpringMVC、Spring 和 SpringBoot 的區(qū)別 ?
線程池實現(xiàn)原理。
sql 優(yōu)化的思路。
索弓|實現(xiàn)原理。
聚簇索引和非聚簇索引的區(qū)別。
你有什么要問我的嗎? ( 你是部長?他說不是,部長授權(quán)面試。)
阿里四面
過了一個星期,收到電話面試,各位以為是 HR 面,錯了,這個叫業(yè)務(wù)經(jīng)理面。HR 說這個一 般都能過。
自我介紹,說一個你最熟悉的項目, 你在其中承擔(dān)什么樣的角色,開發(fā)過程中碰到最大的難題是什么?
聊一聊 SOA 和微服務(wù)。
大學(xué)掛過科沒有。
哪科學(xué)得最好。
大概總共聊了 15 分鐘左右。
四面結(jié)果:通過。
阿里五面
又過了一個星期。才到 HR 面,是當(dāng)?shù)刈庸疽曨l面試。
自我介紹,項目類型。
為什么考慮到深圳發(fā)展?
為什么選擇平安銀行?
現(xiàn)在在面試哪些公司?
如何規(guī)劃自己的生活?
期望薪資。
如何快速搞定 Java 面試,總體上做好以下三點即可:
簡歷準(zhǔn)備
核心技術(shù)及面試題
面試技巧
簡歷準(zhǔn)備
首先你要準(zhǔn)備的是簡歷。簡歷很重要,這是別人了解你的第一個地方,所以簡歷要好好寫。
自我簡介:用最簡單的話來說明自己的情況,不超過 200 字。比如:10+年的軟件開發(fā)經(jīng)驗(說明你的主業(yè)),4+年的團隊 leader 經(jīng)驗(說明你的領(lǐng)導(dǎo)力),擅長高可用高性能的分布式架構(gòu)(說明你的專業(yè)和專攻),多年互聯(lián)網(wǎng)和金融行業(yè)背景(說明你的行業(yè)背景),任職于 XXX 公司的 XX 職位(說明你的職業(yè)),負(fù)責(zé) XXX 平臺或系統(tǒng)(說明你的業(yè)務(wù)場景)....
個人技能:讓對方了解你掌握的技術(shù)和熟悉的領(lǐng)域。如 JVM、并發(fā)編程、Redis、 Spring 源碼、分布式系統(tǒng)架構(gòu)、高性能調(diào)優(yōu)等
經(jīng)驗和軟技能:帶過多少人的團隊、有多少年的項目管理經(jīng)驗、學(xué)習(xí)能力如何、執(zhí)行力怎么樣、設(shè)計過什么樣的系統(tǒng)。(不要太多,幾句話就好)
工作經(jīng)歷:不要列一大堆項目,挑重要的,主要突出項目的難度(技術(shù)點)、規(guī)模(用戶量、并發(fā)量、吞吐量)、挑戰(zhàn)(高可用、技術(shù)瓶頸及突破)、職責(zé)(項目經(jīng)歷/核心開發(fā))等。
核心技術(shù)及面試題
核心技術(shù)
面試??嫉暮诵闹R點包括以下點:
基礎(chǔ)類:并發(fā)編程、JVM、網(wǎng)絡(luò)與 IO、sql 優(yōu)化、數(shù)據(jù)結(jié)構(gòu)與算法
開源框架:Spring 源碼、Mybiats 源碼
高性能架構(gòu)技術(shù):Redis、MQ、Kafka、zookeeper、ES、docker
分布式與微服務(wù):Dubbo、SpringBoot、SpringCloud、SpringCloud Alibaba
快速學(xué)習(xí)線路推薦 1:并發(fā)編程+JVM(1 個月)、Spring 源碼(1 個月)、Redis+MQ+SpringBoot 和 SpringCloud(1 個月)
快速學(xué)習(xí)線路推薦 2:并發(fā)編程+JVM+IO+Sql(2 個月)、Spring 源碼(1 個月)、Redis+MQ+zookeeper+SpringBoot+SpringCloud(2 個月)
數(shù)據(jù)結(jié)構(gòu)與算法推薦面試前去 leetcode 上刷題
后端面試問題解析整理
【Java 快速面試指南目錄】Java 基礎(chǔ)、異常、集合、并發(fā)編程、JVM、Spring 全家桶、MyBatis、Redis、數(shù)據(jù)庫、中間件 MQ、Dubbo、Linux、Tomcat、ZooKeeper、Netty 等等。包含了作為一個 Java 工程師在面試中需要用到或者可能用到的絕大部分知識!
關(guān)注公眾號【編程程序V】,分享更多Java技術(shù)前沿文章,Java學(xué)習(xí)面試資源。

Java 基礎(chǔ)

Java 集合容器

Java 異常
Error 和 Exception 區(qū)別是什么?
運行時異常和—般異常(受檢異常)區(qū)別是什么?
JVM 是如何處理異常的?
throw 和 throws 的區(qū)別是什么?
final、finally、finalize 有什么區(qū)別?
NoClassDefFoundError 和 ClassNotFoundException 區(qū)別?
try-catch-finally 中哪個部分可以省略?
try-catch-finally 中,如果 catch 中 return 了,finally 還會執(zhí)行嗎?
...

并發(fā)編程
并發(fā)基礎(chǔ)
并發(fā)理論
并發(fā)關(guān)鍵字
并發(fā)容器
線程池

JVM
JVM 內(nèi)存區(qū)域
內(nèi)存溢出異常
垃圾收集器
內(nèi)存分配策略
類加載機制
-
JVM 調(diào)優(yōu)
image.png
Spring
spring 概述
Spring 控制反轉(zhuǎn)(IOC)
SpringBean
Spring 注解
Spring 數(shù)據(jù)訪問
SpringAOP

SpringCloud
什么是服務(wù)熔斷,什么是服務(wù)降級
微服務(wù)的優(yōu)缺點
使用中碰到的坑
列舉微服務(wù)技術(shù)棧
eureka 和 zookeeper 都可以提供服務(wù)的注冊與發(fā)現(xiàn)功能,他們的區(qū)別
eureka 服務(wù)注冊與發(fā)現(xiàn)原理
dubbo 服務(wù)注冊與發(fā)現(xiàn)原理
-
...
image.png
Redis
Redis 數(shù)據(jù)類型
Redis 事務(wù)
Redis 持久化及緩存
Redis 緩存異常方案
Redis 集群架構(gòu)

MySQL

RabbitMQ
如何確保消息正確地發(fā)送至 RabbitMQ?
如何確保消息接收方消費了消息?
如何避免消息重復(fù)投遞或重復(fù)消費?
消息基于什么傳輸?
消息如何分發(fā)?
消息怎么路由?
如何確保消息不丟失?
使用 RabbitMQ 有什么好處?
消息隊列有什么缺點?
MQ 如何選型?
如何保證消息隊列高可用?
-
如何保證消息的順序性?
image.png
架構(gòu)設(shè)計

由于篇幅原因,還有 SpringBoot,MyBatis,SpringMVC,Dubbo、Linux、Tomcat、ZooKeeper、Netty 等專題就不做展示了!

面試中的技巧
答不出來怎么辦?
面試中有一些問題很難,但是不要放棄,要不斷嘗試。很多時候,面試官并不期待你能在很短的時候內(nèi)解出一道難題,他只是想看一下你遇到難題時的態(tài)度和思維方式。如果你能證明給面試官看,你解決問題的方向和方法是正確的,就算是沒有找到答案,也是很不錯的。
尖銳問題
幾個常見的比較尖銳的問題:
1、你為什么要離開現(xiàn)在的公司?
這種問題一般都是來問你的離職動機的,招聘方有理由相信,你是怎樣離開前東家的,就會怎樣離開我。如果你開始抱怨你現(xiàn)在的公司了,很可能會引出很多問題把你問到最后都抬不起頭來。當(dāng)然,你也可以說前公司的問題,比如︰自己主導(dǎo)的項目被公司廢棄了、公司轉(zhuǎn)型了、公司業(yè)績下滑了、在現(xiàn)有的公司沒有成長空間了......這些都是可以說的。
2、說一下你的缺點?
這個問題也是很難很難回答的。
其實任何性格的人都有問題,比如,對我來說,我個是比較著急的人,急性子,而且是個做事的人。所以,我最大的問題就是在推進一些事的時候,會忽略別人的感受。當(dāng)壓力變大的時候,我甚至?xí)f出一些別人難以接受的話(俗話說的情商為零)。
但這個不是最佳方法,缺點一定要附帶正面效果。比如,我對事情的要求太高了,跟我在一起工作人的壓力太大。我太內(nèi)向了,所以別人和我溝通起來有點費勁。我太過關(guān)心團隊了,所以,有時候會忽略了項目成本和時間進度…....
最后還要補一句,我知道我的缺點,我也在努力改正,我正在通過什么樣的方式改正。這非常關(guān)鍵,因為這基本上是面試官最喜歡看到的答案了,就是你不僅能正視自己的缺點,而且還能不斷地改正。
3、說一下你的優(yōu)點?
這個問題是比較坑的,你的優(yōu)點是需要用證據(jù)來說明的。
很多人的通用回答是,我的優(yōu)點就是學(xué)習(xí)能力強,因為我掌握的技術(shù)面很廣,而且,我什么樣的技術(shù)都學(xué),比如最新的 Cloud Alibaba 技術(shù)。還要回答這個問題的時候,一定要反襯出你的價值觀,HR 就是想了解你的價值觀。比如,我比較踏實,我想把技術(shù)一直做到老。再比如,我有韌性,我受過哪些挫折、失敗、不公、無奈和無助,我沒有當(dāng)逃兵.......
4、你為什么換工作換得這么勤?
很多公司的 HR 都會對應(yīng)聘者頻繁換工作持比較負(fù)面的評價。頻繁換工作在職業(yè)生涯中真不是一件好事,因為用人方會覺得要么是你太不踏實了,要么是你太不行了。所以,工作不要換得太頻繁。但是如果換得太頻繁了,我給你一個建議,在簡歷里面寫上離職原因。


