10 年工作經(jīng)驗(yàn)的求職經(jīng)歷!
時(shí)間:2021-10-25 15:31:32
手機(jī)看文章
掃描二維碼
隨時(shí)隨地手機(jī)看文章
[導(dǎo)讀]??大家好,我是小林。愉快的周末又來(lái)了,雖然只有一天哈哈。最近我逛博客園的時(shí)候,看到一篇10年工作經(jīng)驗(yàn)的老哥被裁員之后面試高級(jí)Java開發(fā)工程師的求職經(jīng)歷!他把自己面試過(guò)程中常見的知識(shí)也總結(jié)一下,我覺(jué)得非常干貨,特此分享給大家,共勉!概述最近換工作,對(duì)最近面試的過(guò)程進(jìn)行總結(jié),總結(jié)...
??大家好,我是小林。
逼自己一把!
我又變強(qiáng)了一點(diǎn)!??
概述
最近換工作,對(duì)最近面試的過(guò)程進(jìn)行總結(jié),總結(jié)每個(gè)公司的面試流程和問(wèn)到的面試題,記錄自己,也供大家參考。我是一名 Java 開發(fā),工作經(jīng)驗(yàn) 10 年,所以面試一名高級(jí) Java 開發(fā)工程師。簡(jiǎn)歷投遞平臺(tái),只使用了 Boss 直聘。由于生鮮電商裁員,我也是受害者的一員,就職的公司是*菜。2021 年 9 月 8 號(hào)開始開始投簡(jiǎn)歷,2021 年 9 月 18 號(hào)關(guān)閉 Boss 簡(jiǎn)歷,去掉周末面試 8 天。投遞數(shù)據(jù)
溝通過(guò):500 ,面試:20,已投簡(jiǎn)歷 130 由于有復(fù)試原因,最多一天面試 6 家(超級(jí)趕,本來(lái)約了三家,但是來(lái)了 3 家復(fù)試,他們都要求最好能面了。給他們看了 Boss 預(yù)約信息,都要求插空一個(gè)小時(shí))面試崗位情況
10 年 Java 經(jīng)驗(yàn),所以我投遞是高級(jí) Java 工程師的崗位。由于住在順義,所以面試的一般都是望京周圍的公司。面試情況
為了避免不必要的麻煩,這里把公司抹掉了。Boss 面試截圖
為了避免不必要的麻煩,這里把公司抹掉了,也只曬出了部分截圖。Boss 預(yù)約的有 16 家,加起來(lái)總面試是 20 家。面試過(guò)程
本來(lái)打算每個(gè)都寫一下面試過(guò)程來(lái)著,感覺(jué)有點(diǎn)流水賬的意思了,沒(méi)什么意思。這里挑幾個(gè)典型介紹下。*送 :全程 10 分種多點(diǎn),面試官全程沒(méi)有表情。問(wèn)的問(wèn)題:Springboot 自動(dòng)裝配過(guò)程,Springboot 循環(huán)依賴,Springboot 自定義 start,hashmap。遇到過(guò)很多這種情況,問(wèn)的問(wèn)題也答了,面試官?zèng)]有反應(yīng),繼續(xù)問(wèn)他的問(wèn)題。一般遇到這種情況,不用惋惜也不要生氣,他可能剛遇到啥生氣的事情,或者性格就這樣……(盡管這樣安慰自己,當(dāng)時(shí)也很生氣哈哈)***水 :面試時(shí)長(zhǎng) 1 個(gè)小時(shí),問(wèn)的問(wèn)題:JVM/ArrayList/JMM 內(nèi)存屏障,往深了問(wèn),比方 JMM 內(nèi)存屏障怎么設(shè)計(jì)的,為什么要這么做……基本就是問(wèn)到你不會(huì)為止。這種情況也比較多,有些大公司會(huì)這么問(wèn),這種除了自己生氣,應(yīng)該要好好看源碼哈哈****r :明顯的群面,讓我生氣的是,如果過(guò)了,你就往下進(jìn)行就行,HR 說(shuō)的很隱晦,就說(shuō)前面兩輪不錯(cuò),要不來(lái)公司看看……猜測(cè)應(yīng)該是她給很多人都這么說(shuō)了,估計(jì)面試周期會(huì)很長(zhǎng),他們面試基數(shù)比較大,可能是 100 個(gè)人里找 2 個(gè)人哈哈****付 :面試流程明顯有問(wèn)題,應(yīng)該也是群面的。去了 HR 先給我聊了半個(gè)多小時(shí),大體問(wèn)了工作經(jīng)歷,家庭情況,職業(yè)規(guī)劃啥的,看起來(lái)是在拖延時(shí)間。一會(huì)叫來(lái)了業(yè)務(wù)總監(jiān),看看了工作經(jīng)歷。沒(méi)有技術(shù)給我面試,最后 HR 說(shuō)我們業(yè)務(wù)總監(jiān)說(shuō)你沒(méi)有支付經(jīng)驗(yàn),所以不好意思。你怎么不一開始就問(wèn)有沒(méi)有支付經(jīng)驗(yàn),那樣咱們就都不耽誤時(shí)間。就是說(shuō)這些吧,都是些負(fù)面的,希望大家不要遇到這種公司。面試結(jié)果
這次面試周期 10 天,面試 20 家,offer3 個(gè),拒掉 2 個(gè)(直接沒(méi)談錢),還有一個(gè)再談。也就是到談錢的是 6 個(gè)??赡芤婚_始有點(diǎn)慌,沒(méi)有仔細(xì)篩選公司,所以面了幾個(gè)沒(méi)必要面的。我這通過(guò)了有點(diǎn)低面試高頻
總結(jié)下面試高頻知識(shí)Java 基礎(chǔ)
JVM :一般從 JVM 組成開始介紹,然后單獨(dú)介紹每一塊,然后就會(huì)慢慢衍生出垃圾回收方式,垃圾回收器,還可以衍生出 volatile 之類的,你也可以往自己重點(diǎn)掌握的去引導(dǎo)。重點(diǎn):棧幀/堆,垃圾回收方式,垃圾回收器的對(duì)比 G1---CMS。unsafe 類 navicat 到 volatile。集合類:一般會(huì)問(wèn) HashMap 或者 arraylist,有的還會(huì)讓比對(duì) arraylist 和 linklist。ConcurrentHashMap 等一般回答初始化過(guò)程,組成,底層結(jié)構(gòu),算法,線程是否安全等,這塊一定要回答仔細(xì),要看過(guò)源碼,或者看些 B 站的源碼講解很仔 細(xì),到每一個(gè)方法名字,要是集合類就掛掉了,那就涼涼了……重點(diǎn):hashmap 組成,尋找算法,擴(kuò)容算法,put get 過(guò)程,紅黑樹二叉樹 B 樹的區(qū)別。經(jīng)典問(wèn)題:為什么使用紅黑樹,不使用普通的二叉樹。鎖:AQS 實(shí)現(xiàn),公平鎖/非公平鎖,synchronized 和 lock 的區(qū)別,synchronized 鎖演化過(guò)程一般從 AQS 談起,這個(gè)和 HashMap 一樣一定要通讀源碼,知道每一個(gè)方法的名字和過(guò)程,和集合類同樣重要。即使沒(méi)有問(wèn)你,你最后也可以對(duì)比下 synchronized 和 lock 和 LockSupport,顯得 JUC 下面都精通。還有這三個(gè) CountDownLatch_CyclicBarrier_Semaphore,一般會(huì)問(wèn)使用場(chǎng)景,要了然于胸CAS:通常搭配 volatile 問(wèn),我一般在上面幾個(gè)回答中就帶上了,這個(gè)應(yīng)用比較廣泛了,AQS,集合等大量使用,源碼的時(shí)候直接說(shuō)了就 OKThreadLocal:也是要看源碼,還可以結(jié)合 4 大引用類型,堆內(nèi)存泄漏使用,還有使用場(chǎng)景線程池:也是要看源碼,還可以結(jié)合 4 大引用類型,堆內(nèi)存泄漏使用,還有使用場(chǎng)景重點(diǎn):7 大參數(shù),拒絕策略。回答思路,7 大參數(shù),拒絕策略介紹完。把線程池?cái)U(kuò)容場(chǎng)景描述一遍。結(jié)合實(shí)際使用場(chǎng)景說(shuō)一下,參數(shù)配置,一個(gè)是耗 CPU 一個(gè)是耗 IO 的,應(yīng)該就問(wèn)題不大大體就寫這么多,可能還有 JMM/JUC 下面的很多,就不一一列舉了 。總結(jié)下:Java 基礎(chǔ)是敲門磚,很多都要問(wèn)源碼,所以要非常熟悉,一般把這個(gè)當(dāng)作一個(gè)開胃菜,回答好了,下面你才會(huì)自信,面試官也不 會(huì)鄙視你,否則即使往下問(wèn)了,面試官也基本上給你判了死刑了,想想就知道多尷尬……當(dāng)然還有很多廠,一面就問(wèn)道這里,所以很重要。Spring 相關(guān)
Spring 的問(wèn)題問(wèn)的也不少,但也不是很多,總結(jié)幾個(gè)高頻吧IOC/AOP/事務(wù): 把它們歸為一類吧,比較常問(wèn)。一般就從理論談到源碼,然后加一些實(shí)際使用,具體方法。重點(diǎn):IOC 的實(shí)現(xiàn),也就是注冊(cè)托管……,AOP 的實(shí)現(xiàn)邏輯方式的區(qū)別,AOP 的使用 ASpect 的增強(qiáng)方法的順序。事務(wù)的傳播方式。Spring 初始化 Bean 的過(guò)程: 可以在上面問(wèn)題一塊回答了。也有可能單獨(dú)問(wèn)你。這個(gè)要看源碼,那幾個(gè)狀態(tài),幾個(gè)方法名字,bean 的 Scope,主要說(shuō) sigleton。里面有很多的設(shè)計(jì)模式也可以說(shuō)下Spring 循環(huán)依賴: 可以結(jié)合上面的一塊說(shuō)。重點(diǎn):三個(gè) map,bean 的狀態(tài),scop 方式SpringBoot 自動(dòng)裝配 :Springboot 好像就這一個(gè)可以問(wèn)的問(wèn)題,所以要看源碼,具體的哪個(gè) reflsh 方法,要背下來(lái)。一般就說(shuō)從注解說(shuō)的簡(jiǎn)單的那種。要是還問(wèn),就要從 run 開始說(shuō)了。我看過(guò)幾遍,方法太多了,有些記不住吶…………MySql
數(shù)據(jù)庫(kù)是必問(wèn)的,這里就說(shuō) mysql 了。索引: 一般這一個(gè)問(wèn)題,你就可以把 mysql 的所有問(wèn)題串一下。先說(shuō)下 innodb 和 myisam,再說(shuō)聚集索引/非聚集索引,B 樹,索引覆蓋,執(zhí)行計(jì)劃 expline,重點(diǎn):聚集索引/非聚集索引的區(qū)別。B 樹結(jié)構(gòu),怎么才能不回表。查詢優(yōu)化,覆蓋索引。執(zhí)行計(jì)劃 expline 的參數(shù)。查詢優(yōu)化過(guò)程。最后查詢優(yōu)化還可以加上分庫(kù)分表,這里面問(wèn)的就更多了,分庫(kù)分表方式,怎么能更快的讀取,快速定位。要加上實(shí)際場(chǎng)景說(shuō),才有說(shuō)服力……經(jīng)典問(wèn)題: 為什么不適用其他的樹使用 B 樹。這里還會(huì)和 hashmap 的紅黑樹比對(duì)。要看樹的結(jié)構(gòu)了,所以數(shù)據(jù)結(jié)構(gòu)很重要??戳?B 樹的結(jié)構(gòu)就清楚了,我的理解 B 樹葉子節(jié)點(diǎn)又加了一個(gè)類似數(shù)組的串了起來(lái),范圍查詢的時(shí)候,就不用回樹了,提高效率。非聚集索引怎么才能不回表 :非聚集索引存儲(chǔ)的是索引內(nèi)容 ID,當(dāng)索引覆蓋就不回表,這里就涉及到了聯(lián)合索引的最左法制……,就說(shuō)這么多,自己總結(jié)吧,太多了,你可以一直串著往下說(shuō),這樣回答了問(wèn)題,還進(jìn)行了擴(kuò)展,要不面試官也得往下問(wèn)哈哈事務(wù) :這個(gè)也是必問(wèn)的,先從 ACID 說(shuō),然后用 undolog …保證的,然后隔離級(jí)別和出現(xiàn)的現(xiàn)象。然后再說(shuō)隔離級(jí)別的底層,也就是 mysql 的鎖,表鎖行鎖間隙鎖,再到 MVCC重點(diǎn):這里那幾個(gè)隔離級(jí)別比較繞,要仔細(xì)看下,還有實(shí)際應(yīng)用場(chǎng)景,否則很容易被問(wèn)住。我這里卡過(guò)兩個(gè)哈哈集群:主從復(fù)制,分片,分庫(kù)分表。這里會(huì)問(wèn)道集群搭建啥的,我一般就答一下分庫(kù)分表相關(guān)的,偏運(yùn)維的我還沒(méi)有深入搞過(guò),下面要學(xué)習(xí)了……Redis
緩存是必問(wèn)的了,總結(jié)了幾個(gè)高頻-
redis 的數(shù)據(jù)類型: 5 大常用 3 個(gè)不常用的,然后結(jié)合使用場(chǎng)景都說(shuō)下。
-
緩存問(wèn)題和解決方案 :緩存雪崩,緩存擊穿,緩存穿透。解決辦法,多級(jí)緩存,布隆過(guò)濾器(黑白名單),萬(wàn)一擊穿阻塞。這個(gè)是常見問(wèn)題,可以結(jié)合你的項(xiàng)目說(shuō)一下。一定不能掛,要不就涼涼……
-
淘汰策略 :幾種淘汰策略介紹,然后說(shuō)下 LRU 的算法實(shí)現(xiàn)(偽代碼),看下 LRU 的算法,好多算法題就是手寫 LRU 算法。
持久化 :RDB 和 AOF,使用場(chǎng)景,兩種都用先用 AOF 恢復(fù)
-
集群 :主從/哨兵/分片,重點(diǎn)哨兵的介紹
重點(diǎn):分布式鎖 :這個(gè)是重點(diǎn),可以再你的項(xiàng)目場(chǎng)景中就說(shuō)了,分布式的一定涉及到這個(gè)問(wèn)題。
MQ
隊(duì)列在分布式中應(yīng)用廣泛,所以這個(gè)一定會(huì)問(wèn),就算不問(wèn),你在說(shuō)項(xiàng)目的時(shí)候也要說(shuō)下應(yīng)用場(chǎng)景-
MQ 的類型: direct/ topic/ fanout 分別的應(yīng)用場(chǎng)景說(shuō)一下
-
分布式下的應(yīng)用: 說(shuō)一下排對(duì)使用場(chǎng)景,然后圍繞高可用進(jìn)行說(shuō),發(fā)送端接收端如何保證消息的可靠性
-
延時(shí)隊(duì)列: 這個(gè)被問(wèn)到好多次,MQ 的實(shí)現(xiàn)是使用死信隊(duì)列進(jìn)行實(shí)現(xiàn),兩外兩種一個(gè)是 redis Springboot 實(shí)現(xiàn),二是時(shí)間輪。這個(gè)是重點(diǎn)要好好看下,因?yàn)檫@個(gè)場(chǎng)景比較多,延時(shí)多久發(fā)信息,延時(shí)取消訂單
微服務(wù)架構(gòu)
微服務(wù)架構(gòu)這個(gè)很重要,一般我都是在介紹項(xiàng)目的時(shí)候就介紹了,然后對(duì)幾個(gè)框架進(jìn)行對(duì)比回答技巧 :我一般從微服務(wù)的幾大組成開始談,然后對(duì)比他們的區(qū)別。到每一個(gè)技術(shù)的時(shí)候,說(shuō)一下具體使用。比如:sentienl,先說(shuō)下主要功能,然后結(jié)合項(xiàng)目怎么實(shí)現(xiàn)的,可以提一下 SentinelResource 的 blockHandler,這樣讓面試官知道是敲過(guò)代碼的。然后說(shuō)限流是根據(jù)什么配置的,熔斷和降級(jí)解決什么實(shí)際問(wèn)題分布式事務(wù) :分布式事務(wù)放到這里說(shuō)吧,這個(gè)致命重要,分布式下面常見場(chǎng)景,我一般放到這里講。因?yàn)槲覝?zhǔn)備的是 ailbaba 的 seate,大體說(shuō)下分布式事務(wù)的幾種方式,2pc 3pc。然后重點(diǎn)介紹自己項(xiàng)目使用的 seate,要說(shuō)到 seate 服務(wù)使用表名字,怎么使用全局唯一 ID 和 3 大組件實(shí)現(xiàn)的,實(shí)現(xiàn)流程詳細(xì)闡述,前置鏡像后置鏡像。最后說(shuō)下優(yōu)缺點(diǎn),就齊活了…………算法/設(shè)計(jì)模式/Vue/項(xiàng)目經(jīng)驗(yàn)/未來(lái)發(fā)展
這些就不說(shuō)了,算法前端我都比較菜,算法也沒(méi)有刷。設(shè)計(jì)模式可以準(zhǔn)備一下,一般在 Spring 里面直接說(shuō)了。要是面試官直接問(wèn),比方裝飾模式是什么……我就跪了,看來(lái)還要全面的看一遍。至于項(xiàng)目經(jīng)驗(yàn)/未來(lái)發(fā)展這些都要準(zhǔn)備,因?yàn)榧词挂幻娌粏?wèn),后面的面試也會(huì)被問(wèn)到,所以要準(zhǔn)備充分。還有一個(gè)題 狼來(lái)了,兔子猴子都跑了,代碼實(shí)現(xiàn)哈哈總結(jié)
作為一名 Java 開發(fā)工程師,要學(xué)習(xí)的東西實(shí)在太多了,這里只是從 java 基礎(chǔ)/Spring/Mysql/redis……這些方面總結(jié)下這幾天被問(wèn)到的高頻面試題,記錄自己,供大家參考………………面經(jīng)總結(jié)
總結(jié)下 Java 面試面試總結(jié)個(gè)人總結(jié)面試需要自己準(zhǔn)備幾個(gè)方面吧1、技術(shù)基礎(chǔ) :java 基礎(chǔ) 數(shù)據(jù)庫(kù)基礎(chǔ) 緩存 中間件等,比如 hashMap 原理,數(shù)據(jù)庫(kù)索引結(jié)構(gòu),redis 類型,mq 等。基礎(chǔ)是敲門磚,最起碼不能被這些問(wèn)題給問(wèn)住,如果超過(guò)兩個(gè)基礎(chǔ)你沒(méi)有回答上來(lái),一首涼涼送給你。2、算法題 :力扣,???,算法題還是要刷的,否則一個(gè)二叉樹鏡像你就掛了……我比較懶,沒(méi)有刷這些題,所以遇到就掛了,等工作后一定要刷個(gè) 1k 道題哈哈3、微服務(wù)相關(guān) :三個(gè)微服務(wù)框架 netfix,alibaba,dubbo zk 的這些你都要了解過(guò)或者搞過(guò),現(xiàn)在的技術(shù),這些都是常用的,別說(shuō)沒(méi)搞過(guò),要不又是一首涼涼……4、高大上的技術(shù)應(yīng)用實(shí)例 :高大上的技術(shù)應(yīng)用實(shí)例,一定要是通用場(chǎng)景(方便面試官往下問(wèn)),你不要說(shuō)一個(gè)只有行業(yè)才知道的技術(shù)使用場(chǎng)景,那就沒(méi)得聊了。一定要是你技術(shù)的最高體現(xiàn),高并發(fā)/高可用/微服務(wù)/緩存/事務(wù)這種技術(shù)的綜合體現(xiàn)。當(dāng)然準(zhǔn)備好了是加分,要是沒(méi)準(zhǔn)備充分被問(wèn)倒了就是減分項(xiàng)。比方我就是準(zhǔn)備訂單秒殺場(chǎng)景:這種場(chǎng)景包含上面提到的所有信息??梢粤牡臇|西比較多。5、2 分鐘內(nèi)能介紹清楚的項(xiàng)目 :這個(gè)主要是在二面或者三面的時(shí)候高級(jí)別的面試官,考察你邏輯表達(dá)的能力。一般不用太復(fù)雜,但一定要是合情合理的業(yè)務(wù)場(chǎng)景,盡量大一點(diǎn),完整的業(yè)務(wù)場(chǎng)景,不要說(shuō)是某個(gè)邊邊角角。要使用簡(jiǎn)短的語(yǔ)言,通俗的話語(yǔ)說(shuō)清楚。還要注意一點(diǎn)可以加上自己的項(xiàng)目負(fù)責(zé)人這一點(diǎn),都說(shuō)的這么透徹了,再加上負(fù)責(zé)人,面試官感覺(jué)你掌控項(xiàng)目沒(méi)問(wèn)題哈哈總結(jié) :總結(jié)就上面這幾點(diǎn)吧,雖然是我總結(jié)的,我也沒(méi)有做的這么好,有很多一面就掛掉的,所以大家肯定比我優(yōu)秀。如果有什么心得可以一塊探討。大家在看:這一年半,過(guò)的不容易!
逼自己一把!
我又變強(qiáng)了一點(diǎn)!??