當前位置:首頁 > 公眾號精選 > 小林coding
[導讀]??大家好,我是小林。愉快的周末又來了,雖然只有一天哈哈。最近我逛博客園的時候,看到一篇10年工作經(jīng)驗的老哥被裁員之后面試高級Java開發(fā)工程師的求職經(jīng)歷!他把自己面試過程中常見的知識也總結一下,我覺得非常干貨,特此分享給大家,共勉!概述最近換工作,對最近面試的過程進行總結,總結...

??大家好,我是小林。

愉快的周末又來了,雖然只有一天哈哈。

最近我逛博客園的時候,看到一篇 10 年工作經(jīng)驗的老哥被裁員之后面試高級 Java 開發(fā)工程師的求職經(jīng)歷!

他把自己面試過程中常見的知識也總結一下,我覺得非常干貨,特此分享給大家,共勉!

概述

最近換工作,對最近面試的過程進行總結,總結每個公司的面試流程和問到的面試題,記錄自己,也供大家參考。我是一名 Java 開發(fā),工作經(jīng)驗 10 年,所以面試一名高級 Java 開發(fā)工程師。簡歷投遞平臺,只使用了 Boss 直聘。由于生鮮電商裁員,我也是受害者的一員,就職的公司是*菜。2021 年 9 月 8 號開始開始投簡歷,2021 年 9 月 18 號關閉 Boss 簡歷,去掉周末面試 8 天。

投遞數(shù)據(jù)

溝通過:500 ,面試:20,已投簡歷 130 由于有復試原因,最多一天面試 6 家(超級趕,本來約了三家,但是來了 3 家復試,他們都要求最好能面了。給他們看了 Boss 預約信息,都要求插空一個小時)

面試崗位情況

10 年 Java 經(jīng)驗,所以我投遞是高級 Java 工程師的崗位。由于住在順義,所以面試的一般都是望京周圍的公司。

面試情況

為了避免不必要的麻煩,這里把公司抹掉了。

Boss 面試截圖

為了避免不必要的麻煩,這里把公司抹掉了,也只曬出了部分截圖。Boss 預約的有 16 家,加起來總面試是 20 家。

面試過程

本來打算每個都寫一下面試過程來著,感覺有點流水賬的意思了,沒什么意思。這里挑幾個典型介紹下。*送 :全程 10 分種多點,面試官全程沒有表情。問的問題:Springboot 自動裝配過程,Springboot 循環(huán)依賴,Springboot 自定義 start,hashmap。遇到過很多這種情況,問的問題也答了,面試官沒有反應,繼續(xù)問他的問題。一般遇到這種情況,不用惋惜也不要生氣,他可能剛遇到啥生氣的事情,或者性格就這樣……(盡管這樣安慰自己,當時也很生氣哈哈)***水 :面試時長 1 個小時,問的問題:JVM/ArrayList/JMM 內存屏障,往深了問,比方 JMM 內存屏障怎么設計的,為什么要這么做……基本就是問到你不會為止。這種情況也比較多,有些大公司會這么問,這種除了自己生氣,應該要好好看源碼哈哈****r :明顯的群面,讓我生氣的是,如果過了,你就往下進行就行,HR 說的很隱晦,就說前面兩輪不錯,要不來公司看看……猜測應該是她給很多人都這么說了,估計面試周期會很長,他們面試基數(shù)比較大,可能是 100 個人里找 2 個人哈哈****付 :面試流程明顯有問題,應該也是群面的。去了 HR 先給我聊了半個多小時,大體問了工作經(jīng)歷,家庭情況,職業(yè)規(guī)劃啥的,看起來是在拖延時間。一會叫來了業(yè)務總監(jiān),看看了工作經(jīng)歷。沒有技術給我面試,最后 HR 說我們業(yè)務總監(jiān)說你沒有支付經(jīng)驗,所以不好意思。你怎么不一開始就問有沒有支付經(jīng)驗,那樣咱們就都不耽誤時間。就是說這些吧,都是些負面的,希望大家不要遇到這種公司。

面試結果

這次面試周期 10 天,面試 20 家,offer3 個,拒掉 2 個(直接沒談錢),還有一個再談。也就是到談錢的是 6 個??赡芤婚_始有點慌,沒有仔細篩選公司,所以面了幾個沒必要面的。我這通過了有點低

面試高頻

總結下面試高頻知識

Java 基礎

JVM :一般從 JVM 組成開始介紹,然后單獨介紹每一塊,然后就會慢慢衍生出垃圾回收方式,垃圾回收器,還可以衍生出 volatile 之類的,你也可以往自己重點掌握的去引導。重點:棧幀/堆,垃圾回收方式,垃圾回收器的對比 G1---CMS。unsafe 類 navicat 到 volatile。集合類:一般會問 HashMap 或者 arraylist,有的還會讓比對 arraylist 和 linklist。ConcurrentHashMap 等一般回答初始化過程,組成,底層結構,算法,線程是否安全等,這塊一定要回答仔細,要看過源碼,或者看些 B 站的源碼講解很仔 細,到每一個方法名字,要是集合類就掛掉了,那就涼涼了……重點:hashmap 組成,尋找算法,擴容算法,put get 過程,紅黑樹二叉樹 B 樹的區(qū)別。經(jīng)典問題:為什么使用紅黑樹,不使用普通的二叉樹。:AQS 實現(xiàn),公平鎖/非公平鎖,synchronized 和 lock 的區(qū)別,synchronized 鎖演化過程一般從 AQS 談起,這個和 HashMap 一樣一定要通讀源碼,知道每一個方法的名字和過程,和集合類同樣重要。即使沒有問你,你最后也可以對比下 synchronized 和 lock 和 LockSupport,顯得 JUC 下面都精通。還有這三個 CountDownLatch_CyclicBarrier_Semaphore,一般會問使用場景,要了然于胸CAS:通常搭配 volatile 問,我一般在上面幾個回答中就帶上了,這個應用比較廣泛了,AQS,集合等大量使用,源碼的時候直接說了就 OKThreadLocal:也是要看源碼,還可以結合 4 大引用類型,堆內存泄漏使用,還有使用場景線程池:也是要看源碼,還可以結合 4 大引用類型,堆內存泄漏使用,還有使用場景重點:7 大參數(shù),拒絕策略?;卮鹚悸罚? 大參數(shù),拒絕策略介紹完。把線程池擴容場景描述一遍。結合實際使用場景說一下,參數(shù)配置,一個是耗 CPU 一個是耗 IO 的,應該就問題不大大體就寫這么多,可能還有 JMM/JUC 下面的很多,就不一一列舉了 。總結下:Java 基礎是敲門磚,很多都要問源碼,所以要非常熟悉,一般把這個當作一個開胃菜,回答好了,下面你才會自信,面試官也不 會鄙視你,否則即使往下問了,面試官也基本上給你判了死刑了,想想就知道多尷尬……當然還有很多廠,一面就問道這里,所以很重要。

Spring 相關

Spring 的問題問的也不少,但也不是很多,總結幾個高頻吧IOC/AOP/事務: 把它們歸為一類吧,比較常問。一般就從理論談到源碼,然后加一些實際使用,具體方法。重點:IOC 的實現(xiàn),也就是注冊托管……,AOP 的實現(xiàn)邏輯方式的區(qū)別,AOP 的使用 ASpect 的增強方法的順序。事務的傳播方式。Spring 初始化 Bean 的過程: 可以在上面問題一塊回答了。也有可能單獨問你。這個要看源碼,那幾個狀態(tài),幾個方法名字,bean 的 Scope,主要說 sigleton。里面有很多的設計模式也可以說下Spring 循環(huán)依賴: 可以結合上面的一塊說。重點:三個 map,bean 的狀態(tài),scop 方式SpringBoot 自動裝配 :Springboot 好像就這一個可以問的問題,所以要看源碼,具體的哪個 reflsh 方法,要背下來。一般就說從注解說的簡單的那種。要是還問,就要從 run 開始說了。我看過幾遍,方法太多了,有些記不住吶…………

MySql

數(shù)據(jù)庫是必問的,這里就說 mysql 了。索引: 一般這一個問題,你就可以把 mysql 的所有問題串一下。先說下 innodb 和 myisam,再說聚集索引/非聚集索引,B 樹,索引覆蓋,執(zhí)行計劃 expline,重點:聚集索引/非聚集索引的區(qū)別。B 樹結構,怎么才能不回表。查詢優(yōu)化,覆蓋索引。執(zhí)行計劃 expline 的參數(shù)。查詢優(yōu)化過程。最后查詢優(yōu)化還可以加上分庫分表,這里面問的就更多了,分庫分表方式,怎么能更快的讀取,快速定位。要加上實際場景說,才有說服力……經(jīng)典問題: 為什么不適用其他的樹使用 B 樹。這里還會和 hashmap 的紅黑樹比對。要看樹的結構了,所以數(shù)據(jù)結構很重要??戳?B 樹的結構就清楚了,我的理解 B 樹葉子節(jié)點又加了一個類似數(shù)組的串了起來,范圍查詢的時候,就不用回樹了,提高效率。非聚集索引怎么才能不回表 :非聚集索引存儲的是索引內容 ID,當索引覆蓋就不回表,這里就涉及到了聯(lián)合索引的最左法制……,就說這么多,自己總結吧,太多了,你可以一直串著往下說,這樣回答了問題,還進行了擴展,要不面試官也得往下問哈哈事務 :這個也是必問的,先從 ACID 說,然后用 undolog …保證的,然后隔離級別和出現(xiàn)的現(xiàn)象。然后再說隔離級別的底層,也就是 mysql 的鎖,表鎖行鎖間隙鎖,再到 MVCC重點:這里那幾個隔離級別比較繞,要仔細看下,還有實際應用場景,否則很容易被問住。我這里卡過兩個哈哈集群:主從復制,分片,分庫分表。這里會問道集群搭建啥的,我一般就答一下分庫分表相關的,偏運維的我還沒有深入搞過,下面要學習了……

Redis

緩存是必問的了,總結了幾個高頻
  • redis 的數(shù)據(jù)類型: 5 大常用 3 個不常用的,然后結合使用場景都說下。

  • 緩存問題和解決方案 :緩存雪崩,緩存擊穿,緩存穿透。解決辦法,多級緩存,布隆過濾器(黑白名單),萬一擊穿阻塞。這個是常見問題,可以結合你的項目說一下。一定不能掛,要不就涼涼……

  • 淘汰策略 :幾種淘汰策略介紹,然后說下 LRU 的算法實現(xiàn)(偽代碼),看下 LRU 的算法,好多算法題就是手寫 LRU 算法。
    持久化 :RDB 和 AOF,使用場景,兩種都用先用 AOF 恢復

  • 集群 :主從/哨兵/分片,重點哨兵的介紹
    重點:分布式鎖 :這個是重點,可以再你的項目場景中就說了,分布式的一定涉及到這個問題。

結合下圖的 5 個特性說,從 redisson 說到 redlock,重點就是下面五個特性和看門狗的實現(xiàn),集群下的容錯性。

MQ

隊列在分布式中應用廣泛,所以這個一定會問,就算不問,你在說項目的時候也要說下應用場景
  • MQ 的類型: direct/ topic/ fanout 分別的應用場景說一下

  • 分布式下的應用: 說一下排對使用場景,然后圍繞高可用進行說,發(fā)送端接收端如何保證消息的可靠性

  • 延時隊列: 這個被問到好多次,MQ 的實現(xiàn)是使用死信隊列進行實現(xiàn),兩外兩種一個是 redis Springboot 實現(xiàn),二是時間輪。這個是重點要好好看下,因為這個場景比較多,延時多久發(fā)信息,延時取消訂單

還有問幾個 MQ 的區(qū)別的或者問怎么選型的,我沒回答太好,因為沒有全都用過。

微服務架構

微服務架構這個很重要,一般我都是在介紹項目的時候就介紹了,然后對幾個框架進行對比回答技巧 :我一般從微服務的幾大組成開始談,然后對比他們的區(qū)別。到每一個技術的時候,說一下具體使用。比如:sentienl,先說下主要功能,然后結合項目怎么實現(xiàn)的,可以提一下 SentinelResource 的 blockHandler,這樣讓面試官知道是敲過代碼的。然后說限流是根據(jù)什么配置的,熔斷和降級解決什么實際問題分布式事務 :分布式事務放到這里說吧,這個致命重要,分布式下面常見場景,我一般放到這里講。因為我準備的是 ailbaba 的 seate,大體說下分布式事務的幾種方式,2pc 3pc。然后重點介紹自己項目使用的 seate,要說到 seate 服務使用表名字,怎么使用全局唯一 ID 和 3 大組件實現(xiàn)的,實現(xiàn)流程詳細闡述,前置鏡像后置鏡像。最后說下優(yōu)缺點,就齊活了…………

算法/設計模式/Vue/項目經(jīng)驗/未來發(fā)展

這些就不說了,算法前端我都比較菜,算法也沒有刷。設計模式可以準備一下,一般在 Spring 里面直接說了。要是面試官直接問,比方裝飾模式是什么……我就跪了,看來還要全面的看一遍。至于項目經(jīng)驗/未來發(fā)展這些都要準備,因為即使一面不問,后面的面試也會被問到,所以要準備充分。還有一個題 狼來了,兔子猴子都跑了,代碼實現(xiàn)哈哈

總結

作為一名 Java 開發(fā)工程師,要學習的東西實在太多了,這里只是從 java 基礎/Spring/Mysql/redis……這些方面總結下這幾天被問到的高頻面試題,記錄自己,供大家參考………………

面經(jīng)總結

總結下 Java 面試面試總結個人總結面試需要自己準備幾個方面吧1、技術基礎 :java 基礎 數(shù)據(jù)庫基礎 緩存 中間件等,比如 hashMap 原理,數(shù)據(jù)庫索引結構,redis 類型,mq 等。基礎是敲門磚,最起碼不能被這些問題給問住,如果超過兩個基礎你沒有回答上來,一首涼涼送給你。2、算法題 :力扣,???,算法題還是要刷的,否則一個二叉樹鏡像你就掛了……我比較懶,沒有刷這些題,所以遇到就掛了,等工作后一定要刷個 1k 道題哈哈3、微服務相關 :三個微服務框架 netfix,alibaba,dubbo zk 的這些你都要了解過或者搞過,現(xiàn)在的技術,這些都是常用的,別說沒搞過,要不又是一首涼涼……4、高大上的技術應用實例 :高大上的技術應用實例,一定要是通用場景(方便面試官往下問),你不要說一個只有行業(yè)才知道的技術使用場景,那就沒得聊了。一定要是你技術的最高體現(xiàn),高并發(fā)/高可用/微服務/緩存/事務這種技術的綜合體現(xiàn)。當然準備好了是加分,要是沒準備充分被問倒了就是減分項。比方我就是準備訂單秒殺場景:這種場景包含上面提到的所有信息??梢粤牡臇|西比較多。5、2 分鐘內能介紹清楚的項目 :這個主要是在二面或者三面的時候高級別的面試官,考察你邏輯表達的能力。一般不用太復雜,但一定要是合情合理的業(yè)務場景,盡量大一點,完整的業(yè)務場景,不要說是某個邊邊角角。要使用簡短的語言,通俗的話語說清楚。還要注意一點可以加上自己的項目負責人這一點,都說的這么透徹了,再加上負責人,面試官感覺你掌控項目沒問題哈哈總結 :總結就上面這幾點吧,雖然是我總結的,我也沒有做的這么好,有很多一面就掛掉的,所以大家肯定比我優(yōu)秀。如果有什么心得可以一塊探討。
原文:https://www.cnblogs.com/chenn/p/15337572.html

大家在看:這一年半,過的不容易!
逼自己一把!
我又變強了一點!??

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內容真實性等。需要轉載請聯(lián)系該專欄作者,如若文章內容侵犯您的權益,請及時聯(lián)系本站刪除。
關閉
關閉