sql

2020java面試總結

博主背景:92年生,渣本畢業,java崗,經驗接近6年,base上海

本文宗旨:本文旨在將博主最近的面試經歷分享給大家,並作些總結,儘量為在準備面試的同學縮小面試準備的範圍,或者至少讓同學們知道現在企業都問些啥,以及一些面試的注意事項,希望對你有參考作用

本次面試情況:2020年7月中開始,持續3周多時間,面了13家,2家沒過,1家意外,10家透過,如下:

1)拍拍貸,業務崗資深技術專家+基礎架構部資深技術專家,技術五面(這家經歷比較特殊,兩個崗位都通過了,所以技術面了5輪)

2)平安普惠金融,職級C2,技術三面(透過)

3)微眾銀行,技術兩面(透過),是博主現在的東家…

4)北京什麼值得買,架構師崗(一面沒過)

5)soul,高階java,技術三面(透過)

6)多點small,技術三面(透過)

7)薩摩耶數科,技術三面(透過)

8)中國電信,雲端計算部門,技術三面(掛在技術三面)

9)哈羅單車,技術兩面(透過)

10)螞蟻金服,國際事業群(就是出了意外的那家…..技術一面+做題,當場面試官反饋透過,第二天出了么蛾子,說是我們公司算他們資方,不能招,我當然認為是扯淡,後續跟獵頭瞭解到,螞蟻對資方企業的員工簡歷有幾個月的冷凍期,非常遺憾,沒見識到螞蟻面試官的厲害…)

11)餓了麼,風控部門,職級P7(餓了麼P7只能對標阿里P6,P6+),技術三面(透過)

12)2345,架構師崗,技術三面(透過)

13)普洛斯,技術二面(透過)

 

我從面試題風格的角度出發,把面過的公司分分類,同時會附上遇到的技術題,大部分問題會附上一些線索,如果你感興趣,希望可以自行去尋找答案。我會標註出一些高頻題,這種題都是博主面試過程中多次遇到的,希望引起你的重視。另外,我會根據面試主題推薦一些相關的書籍、影片、專欄等資料,都是我看過並覺得不錯的、並且對面試直接有用的學習資料,你可以根據自己的興趣選擇;書籍可以網上下pdf版,影片也基本是免費的,專欄你先網上搜搜,保不準有盜版的呢…

文章最後,會給出一些技術題之外的注意事項,也很重要呦….

上面試題

>>問題有點刁鑽的:2345一面

一面面試官的開場白是這樣的:我們正在招一個高P的,實力夠硬的架構師,來做我們中臺的建設

說實話,博主自認達不到”高P”的水平,當時心裡還是有點虛的,沒辦法只能硬著頭皮上了,問題如下:

1.什麼情況下hashMap會導致oom(除了一直put的情況):呃…這是什麼套路,問問1.7和1.8的區別不是挺好嗎,我已經背好了啊(呃…是理解),這才是第一題呀,為什麼這麼不友好

這題跳過,後面也懶得去查了,忘了它!

2.解釋下DDD聚合根、聚合的含義:這是唯一一家問了DDD(領域驅動設計)的公司,博主對DDD的瞭解也僅限於理論的學習,當時給出的答案只能算勉強。國內使用DDD的公司並不多,可能是學習成本比較高的緣故,並且要想推行DDD,對團隊成員要求都比較高,一旦碰到了使用DDD的公司,說明他們的技術要求挺高。如果你想學習DDD,不要上來就啃《領域驅動設計》《實現領域驅動設計》這兩本書,內容過於抽象,助眠效果甚好..可以先看看極客時間的《DDD實戰課》,通了後再去啃效果會好一些

3.mysql的binlog redolog undolog含義,如何配合保證一致性:這個在丁奇的《mysql實戰45講》中有詳細說明,無論是DBA還是開發人員,這本”書”絕對不容錯過,因為是專欄形式,每篇文章後都有答疑,你會發現有些答疑甚至比正文還要精彩,作者非常耐心的對每個提問作了回覆,引導讀者去思考,可謂諄諄善誘

4.mvcc存在的意義,事務中mvcc如何協調讀和寫的:高頻題!這個在我的博文”隔離級別與mvcc的那些事“中有詳細說明

5.ConcurrentHashMap如何做到在foreach時的執行緒安全

6.tcp的四次揮手過程,TIME_WAIT狀態的意義、帶來的問題、TCP的哪幾個引數可以解決TIME_WAIT狀態帶來的問題:高頻題!tcp的問題中,四次揮手比三次握手高頻很多,問到四次揮手,TIME_WAIT肯定少不了;tcp常見的面試題不是很多,大概分為這幾塊:TCP四元組,三次握手、四次握手到底是在幹啥、tcp如何保證可靠性、流控怎麼做的,TIME_WAIT狀態的含義及解決方案

7.netty的FastThreadLocal為啥比jdk的ThreadLocal快:因為技術棧裡寫了熟悉netty原始碼,所以問到,答案是資料結構不一樣,前者為陣列,後者為使用線性探測法的hashMap,感興趣的童鞋可以看下原始碼

8.zk的一致性級別

9.redis cluster叢集新增節點後,叢集如何將slot遷移到新的節點,描述下這個過程:這個在《redis設計與實現》的17.4節中有說明,由於看書時間過去了很久,答得不太好;《redis設計與實現》加上《redis深度歷險》,這兩本redis經典書籍,即使你現在沒時間看,後面也最好抽時間看看,看完再遇到redis面試題,一點不虛

10.設計一個redis熱點key的處理方案,怎麼實時檢測出熱點key,檢測出之後怎麼響應

11.設計一個最短響應時間負載均衡策略,算是筆試題,讓我在第二天10點前把答案微信發給他:下面是我給出的第一版方案:

當時面試官用委婉的方式表達了對方案的不滿意:

您都這樣問了,我還敢說是嘛

 

既然是開卷,一定是允許查資料的,隨後瞭解到dubbo裡就有一個最短響應時間負載均衡策略,當然了,如果我直接把dubbo的這套策略搬出去,很明顯是在懷疑面試官的智商,在看過這塊的原始碼後,我又給出了一版方案:

一面最終是過了,面試官這樣評價

我覺得大概是最後一題救了我的小命,挺喜歡面試官這種引導面試者思考的方式,可惜並不多見

二面大多是專案問題,技術問題只記住了這樣幾個:

1.看你寫的熟悉mybatis原始碼,你說說mybatis的二級快取怎麼實現的:直接說不會,因為這塊沒看過

面試官接著問那你熟悉mybatis哪塊,我就跟他講了講mybatis的整體架構,以及查詢的工作流程,核心元件如何協作…

2.spring中bean的生命週期

3.spring怎麼解決迴圈依賴的

(這三道題恰巧都是高頻題,因為mybatis比較小巧、網上資料很多,上手難度不高,建議你看下這塊的原始碼;spring原始碼就太多了,暫時沒有碰到直接問spring某一塊原始碼的,2/3兩題是spring中最高頻的問題,第2題因為spring中bean生命週期的每個節點都涉及到一個擴充套件點,如果你寫過通用功能,一般都會接觸到相關的擴充套件點類,所以面試官比較鍾愛;至於第3題,搞不懂為啥是網紅題,大概是沒啥好問的了吧… )

第3題網上的答案大多看起來比較費勁,我給你簡化下,你可以這樣回答:

spring是採用三級快取解決這個問題的(表明你看過原始碼了),三級快取搞的比較複雜,但本質上是因為物件的構造和初始化兩步可以獨立開(先new,再set,沒人不知道吧?),A依賴B(要注入B),B又依賴A(要注入A),spring在new完A後將其放到容器map中,A.setB時發現B不在map中,接著去new B,也放入map中,然後B.setA,發現map中可以取到,B.setA完了再接著A.setB,結束

>>底層問題較多的:拍拍貸基礎架構崗

在拍拍貸的面試經歷比較獨特,開始面的是業務部的技術專家崗,問題基本上都是圍繞專案來的,沒啥可說的,三面boss面時,提到我寫了個rpc框架後,面試官大腿一拍,說正好他們基礎架構部在招人,然後換基礎架構部的面試官來面,問題如下:

1.程序上下文切換原理,切的是什麼:我的博文”深入理解上下文切換“正好就是關於上下文切換原理的,所以這題答得不錯,關於作業系統原理,想要學習的同學可以看看B站的影片“作業系統_清華大學(向勇、陳渝)”,這是我看過唯一一個不需要倍速的影片教程,香的很

2.java類載入過程,說到雙親委託機制時,又問什麼時候需要打破雙親委託機制:舉了個SPI的例子,然後說明了下SPI如何利用中的執行緒上下文類載入器載入擴充套件類

3.try with resource為啥能關閉資源:因為資源物件都實現了java.io.Closeable介面…

4.我寫的rpc協議為啥用定製的tcp,而不是http,這個問題不僅只侷限於rpc框架,但凡是涉及到定製tcp協議和http選型時,都可以拿來問:用http和自定義tcp協議的本質目的不同,前者為了普適和通用,後者為了效能;http的使用非常廣泛,不管是手機、瀏覽器、還是現在的物聯網裝置,都可以非常方便的接入http,所以說用http協議可以非常方便的支援各類終端,可以算作普通話;自定義的TCP協議只能用作內部交流,不具有普適性,算作內部黑話,由於tcp屬於http下的一層,效能上會更好,但其實對於rpc協議來說,往往並不是效能極度敏感的場景,http協議的效能已經能滿足了,不需要定製化的去提高效能,這是一個開放的時代,互聯互通的世界,保證基本效能的前提下,通用和相容性才是最重要的事情

5.rpc的心跳機制怎麼做的,為啥不用tcp自帶的keepalive:說了下netty的IdleHandler,基於它實現keepalive機制的原理

6.堆外記憶體為何存在,使用場景是? 如何釋放堆外記憶體:高頻題!我的博文”read write、mmap、directBuffer、sendfile傻傻分不清楚?“中對java的堆外記憶體directBuffer概念有作說明

7.相對於BIO,NIO本質上帶來了什麼好處,為何:NIO毫無疑問是高頻題!吞吐量更高,NIO模型下,使用者執行緒需要阻塞的時間更短(因為不需要使用者執行緒輪訓網路對端的資料是否就緒,由專門的selector執行緒去做),也就是說同樣數量的執行緒,NIO模式下的阻塞時間更短,吞吐量自然更高

8.redis的資料分片叢集中:cluster叢集和基於proxy的叢集,各自利弊,如何選型:1)效能:proxy模式多一層網路開銷,對於效能敏感的場景,這一點要慎重考慮;2)客戶端複雜度:使用proxy方式,客戶端與原來處理單機redis方式一樣,不用變化;cluster方式就要複雜很多了,客戶端需要連線所有cluster節點,還需要維護key與節點的關係,cluster中還存在move和ask兩種重定向問題,都需要客戶端去處理;3)運維複雜度:為了實現去中心化,cluster叢集內建了複雜的raft和Gossip協議,存在大量需要調優的引數,如果出現問題,往往很難下手;

9.redis cluster叢集有多少個slot,用什麼演算法將key對映到slot:slot數量答出來了,什麼演算法不知道,猜了個一致性hash,但是不對

10.一致性hash用於解決什麼問題:接著上一問,用於解決hash演算法負載均衡時,節點數量發生變化後對負載均衡的結果變動過大的問題,高頻題!

11.用過哪些設計模式,什麼場景、怎麼用的:高頻題!設計模式的重要性不用我多說了吧,23種設計模式,常用的就那麼些,工廠模式/模板方法模式/代理模式/介面卡模式/觀察者模式/策略模式/責任鏈模式,只看概念感覺很好理解,但重要的是要去寫!多在平時編碼過程中用一用這些設計模式,才能深刻理解,面試官不傻,不會簡單的問下概念就了事..

12.如何設定合理的執行緒數?為啥有阻塞,執行緒數需要多一點:高頻題!我的博文”透過rocketMq探究netty原始碼以及netty的通用生產實踐原則“中第一節就說明了這個問題

13.我們專案用的哪種垃圾收集器,簡單說一說:高頻題!現在市面上企業用CMS的最多,我就大致說了下CMS的特性和原理,並將其與G1作了比較,關於GC的知識,極客時間的《java核心技術36講》的27/28兩講說的比較清楚,建議你去看一看,值得注意的是,這門課程是專為面試準備的同學準備的,java基礎中常見的面試題都有涉及,所以建議你全部看一遍,博主看下來覺得有些地方說的不太明確(尤其是前面幾節),如果你也遇到不太明白的地方,應該及時查詢資料,解決疑惑;還有些地方需要讀者自己啃一啃原始碼,才能更好的理解

>>java基礎覆蓋最全面的:soul 技術一面二面

雖然是家不太知名的公司,但是問的可真全,而且兩位面試官都很年輕!

可是…為什麼回憶不起來他們都問些啥了…

好吧,事實是這家面完有事耽擱了幾天,沒及時記下題目,後面再整理時只回憶起了幾道題:

1.ReetrantLock如何實現?aqs的原理,公平鎖非公平鎖

2.countDownLatch和CycleBarrier的使用場景有何區別

…..

前面都是java基礎類問題,還有很多其他的題,大多在上述的《java核心技術36講》中都有提到,再次建議各位讀一讀

3.怎麼提高redis批次操作效率,說說pipeline的原理:《redis深度歷險》一書的”深入理解管道本質”一節中有提到,加上前面提到的《redis設計與實現》,這兩本redis經典書籍,即使你現在沒時間看,後面也最好抽時間看看,看完再遇到redis面試題,一點不虛

4.springboot解決了什麼問題,原理:解決的就是使用spring時pom依賴管理、以及注入各種spring自帶的bean這兩個麻煩,解決依賴管理很簡單,bean的自動裝配就需要讀者擼一擼程式碼了,高頻題!可以說是springboot的必考題了

5.spring的生命週期:前面說了,高頻題!

6.redis快取一致性問題如何解決:高頻題!

7.redis中zset的底層資料結構,為何這樣設計:開始是壓縮表,達到一定容量後轉為跳錶,設計上是基於空間時間的取捨,在《redis深度歷險》中有提到

8.挑一個你用的頻率最高的設計模式說一說:設計模式,前面說了,高頻題!

>>阿里系的:

     不得不說,阿里系的面試官挺nice,不需要自我介紹(有點煩上來就讓自我介紹的,我的經歷簡歷上你不會看?我說了你還不是得問問題,直接問不好嘛!),態度很好,問問題時一直往你會的點上引,儘量讓你充分發揮,這樣招人的策略就很好,面試者發揮的越好,面試官也能判斷的越精準。關鍵是不卡學歷!這點對我等渣本生算是非常友好了,話說上海的其他大廠博主能投的都投了,一點反應沒有…同學們多找找可以內推的機會(脈脈好像有?沒試過,還有些網站上活躍著各個大廠內推的帖子,你也可以找找,機會要比自己投的大得多)

>>>>哈羅單車一面:

哈羅一面可以說覆蓋的點最全了(專案、架構、壓測、效能、基礎、分散式、你擅長的點)

1.先問專案

2.怎麼畫架構圖,畫了幾類架構圖,用什麼工具畫的

3.專案的一些效能引數(多少機器,什麼配置,日活,平均TPS,峰值TPS這些你都得心裡有數)

4.壓測壓到什麼程度(使用者數、併發數、tps)、關注哪些指標

5.效能最佳化關注哪些點,最佳化前後效果對比

專案問了接近一小時,然後問技術點,先問我哪塊原始碼看的比較多,我說netty,就問了一些netty的問題

6.netty啟動過程

7.netty的執行緒模型,有幾種執行緒池

8.說到boss執行緒和work執行緒時,問了netty新連線接入的過程,怎麼從boss執行緒轉到word執行緒

9.pipeline的組成元素,主要元件,IO事件傳播順序

10.netty如何解決粘包拆包問題

如果你的技術棧裡沒有netty,請忽略,如果有,或對netty感興趣,《netty實戰》是強烈建議你看的,我的博文”透過rocketMq探究netty原始碼以及netty的通用生產實踐原則“和”netty原始碼分析_帶你搞懂ChannelHandler事件傳播順序“中介紹了一些netty的原理,你也可以看看

11.springboot原始碼看過嘛?能大概說說麼,上面已經說了,高頻題!讀者可以翻回去看看具體要怎麼準備

12.線上頻繁fullGC怎麼解決

13.mysql的索引結構,索引常見的最佳化原則,高頻題!基本上問到mysql的都會問這兩題

14.分散式事務解決方:說了下2PC,3PC,各自的優劣勢,由於對基於分散式事務訊息的最終一致性解決方案比較熟悉,我詳細的說了下這塊,我的博文”rocketMq事務訊息原理與二階段提交“介紹了rocketMq實現分散式事務訊息的原理,你有興趣也可以看看

15.分散式ID生成方案:說了下雪花演算法

16.zookeeper的選舉過程是怎樣的,這個在《從Paxos到Zookeeper  分散式一致性原理與實踐》一書的7.6節有詳細的說明,這本書是zookeeper入門好書,還附帶介紹了寫分散式基礎知識,建議一讀

>>>>餓了麼:

1.前兩面都做了筆試題,第一道考得是對ThreadPoolExecutor的執行緒池以及原子變數的理解,第二道是將一個可能滿足double的字串,轉換成double型別輸出,不能使用高階API(這題在soul三面也遇到了..)

2.spring中事務的傳播特性,並結合實際使用場景問事務的執行情況

3.事務的隔離級別,mysql中的事務隔離級別,是否存在幻讀

4.springboot原始碼,再次出現,高頻題!

5.七層網路協議

6.四層網路協議,網路層解決什麼問題,傳輸層解決什麼問題

7.tcp四元組包括哪些、tcp如何做到可靠送達,高頻題!

8.資料庫高可用方案

9.mysql主從延時問題如何解決,高頻題!

10.會關注時下流行的技術麼?

11.談談對雲原生的理解

>>>>螞蟻金服:

1.筆試題:分散式場景下,A系統調B系統的s服務,寫下呼叫邏輯,考慮超時、異常處理,這題考得是冪等控制,分散式介面呼叫,超時異常問題無法避免,如何正確處理,是分散式系統開發時必須要考慮的問題

2.rocketMq延時佇列原理:我的博文”RocketMq消費失敗處理邏輯“中說明了提到了延時佇列,你可以看一看

其他也沒啥特殊的問題了,基本都包含在前面列的問題中,總體來說,螞蟻一面問題比較常規,沒給我留下什麼深刻的印象,直到…hr說我被拒絕了,原因文章開頭已經說了….

 

>>面試體驗差的:中國電信技術三面

崗位是雲端計算部門(雲端儲存方向),跟博主的經歷是不太匹配的,投簡歷時看辦公地點離我只有一公里,沒想啥就投了,居然讓我去面試…

一面問題過於簡單(Object類中有哪些方法、wait和sleep有啥區別),就不提了,二面:

1.java的記憶體模型,說一說volatile、happen before:這個我認為也算高頻題!不過本次面試只有這一家問到,看不看讀者請自行斟酌,《深入理解java虛擬機器》一書中的第12章就是關於java記憶體模型與執行緒的,趕時間可以單看這一章

2.如何用兩個執行緒交替執行某個動作

3.死鎖怎麼解決:前面提到的B站影片”作業系統_清華大學(向勇、陳渝)”的第11章就是關於死鎖問題的,其中基本說明了死鎖問題的所有解決方案

4.hashmap為啥用紅黑樹來樹化連結串列,為啥不是B+樹?

5.如果讓你設計一個數組結構,陣列怎麼擴容

6.redis的字串底層結構,為何這樣設計:《redis設計與實現》中開始就提到了這塊內容

 

二面結束後,並不是直接三面技術,而是hr,hr跟我說了很多,最後在問了我的薪資要求後,說”等你晚上面了我們部門的總監”後我們再接著談,這….又是什麼新套路?

三面是晚上八點開始的(影片面),面試官大概遲到了10來分鐘,來了之後讓我一邊自我介紹,他一邊深深的靠在椅子上、伸懶腰、脫眼鏡、揉眼睛、打哈欠…一頓操作那是行雲流水,相當無我,您這麼累,要不先睡會?

隨後讓我介紹了下專案,最後讓我設計一個電梯排程系統!說實話,我還真不會!想了一會兒,給了個方案,被挑了個漏洞,又想..然後又有漏洞..然後就結束了,之後面試官問了我當前薪資和薪資要求,就沒有然後了…

為什麼面試體驗差還拿出來單獨說下呢,一來是覺著這套路有點像給不起工資,二來是提醒各位讀者,如果遇到這種面試官,大可以懟上兩句然後強勢結束面試;你需要人,我需要工作,大家平等,沒什麼高下之分,基本禮貌做不好的面試官,要嘛是演,要嘛真的是沒品,不管哪樣,如果是你以後的領導,應該都好不到哪去,直接拜拜,節省時間;為啥我沒直接結束面試?因為我傻,反應慢…希望各位不要像我一樣

>>最後說說我現在的東家,微眾銀行:

一面兩個面試官(也就是我現在的導師和直屬上司),各問了幾十分鐘,題如下:

1.分散式限流模組怎麼做的(比如限制某個產品號10s最大3000tps):設計了兩版,都是基於redis,初版用zset設計了個滑動視窗,這個在《redis深度歷險》一書中也有提及,滑動視窗有幾個明顯缺陷,視窗越大(比如從限制10s最大1000tps變成10s最大5000tps)就需要在zset中維持更多的元素,記憶體佔用越大,zset的遍歷也會耗時越久;第二版直接在lua指令碼中實現令牌桶,然後在redis上執行;隨後問了些限流tps、redis負載的問題

2.redis的資料分片叢集中:cluster叢集和基於proxy的叢集,各自利弊,如何選型

3.我寫的rpc協議為啥用定製的tcp,而不是http

2/3兩個問題上面已經說明過了

4.rpc呼叫的超時機制如何做的:我的博文”透過rocketMq探究netty原始碼以及netty的通用生產實踐原則“中的第4小節對超時處理有詳細說明

5.rocketMq的負載均衡如何做的:rocketMq的負載均衡分為producer生產訊息負載均衡,以及consumer均衡分攤訊息,具體原理可以參考我的博文”rocketMq原理_客戶端與namesrv及broker的互動

6.rocketMq的offset如何管理的:這塊是rocketMq中比較重要的內容,但是博主沒看過這塊原始碼..所以答得不太好,面試官也是很直接,說”看來這塊內容你不太清楚,就不要強撐著裝懂了”

所以說大家遇到不太清楚的,直接跳過比較好,畢竟沒有人啥都會,把時間留給會的題成功率會更高

7.http長連線短連線問題,瀏覽器中發出5個http請求,會使用幾個tcp連線,如果都使用一個連線,發出去的多個請求和回來的多個響應如何一一對應

8.開閉原則如何理解

9.里氏代換原則如何理解

10.悲觀鎖和樂觀鎖的適用場景問題

11.ThreadPoolExecutor有哪幾個引數,如何協調:高頻題!

12.在問到我的職業規劃時,博主提到如果可以做基礎架構方面(說白了就是寫中介軟體)的工作,也是可以的(博主之前的觀念是基礎架構可以寫更nb的程式碼,自然也就更nb),面試官(我現在的直屬上司)面露不解神色,”為什麼,技術不是為業務服務的嗎?”,博主當時覺得這句話挺有道理啊,支支吾吾了一會這個問題就算過了。但是這件事不能就這樣結束了,我得搞清楚為啥面試官會表示不解啊,難道我以前的觀念是錯的?之後我諮詢了好些朋友,有資深架構師,也有做過基礎架構的,他們都一致的表示”不看好基礎架構”,理由如下:1.方向比較侷限,未來方向就侷限在中介軟體了;2.市場需求比較少,基本上有基礎架構部的企業,業務開發人員至少是基礎架構人員的10倍,甚至更多;3.趨勢是基礎的技術在不斷下沉,需要做的基礎架構開發工作會逐漸變少;4.基礎架構雜事兒比較多,因為開發的東西是給業務部門用的,溝通會佔用很大一部分的時間,尤其是跟技術比較挫的業務開發人員對接,說減壽都不為過啊… 5.賺錢的永遠是業務部門,其他都是為業務服務的,也就是我直屬上司的觀念。當然也有同學表示剛畢業時做兩年基礎架構工作,對基本功的鍛鍊有好處,基礎架構工作比較單純,相對來說更輕鬆點;說的比較多,如果你有做基礎架構的想法,可以參考下….

哎不對啊,為啥大家都知道基礎架構有這麼多缺陷,我好像知道的有點晚?我突然回想起面試拍拍貸時,hr問我想做基礎架構還是業務開發,我說基礎架構,hr抑制不住自己的笑容,同時一臉驚訝”啊!我以為你會選業務開發”,所以hr小姐姐,你這個笑容是覺得我傻咯?

二面面試官是個女boss(也就是我們部門的總經理),一般來說最後一輪技術面掛人的概率不高,因為大boss很少問細節問題,大多是看看眼緣走個過場,但是博主險些就跪在這一面,雖然都是些專案問題,但問的太細了!其中一個問題想了好一會才理順,要是沒想通,怕是就跪了,技術boss中女的不多,但能上去的一般都很強,如果你也遇到了女boss,一定要謹慎呀騷年

之後問到了專案中遇到過什麼難題,怎麼發現的,怎麼解決的:這題是高頻題!(文末總結處會再作下說明),回答好了可以加不少分,通過了解面試者解決難題的思路,比起一般的面試題,確實可以更清晰的判斷面試者的能力,博主遇到過幾次問題,並且都解決的還不錯,所以這道題算是我的加分項了

技術題到這裡就說完了,最後補充幾點注意事項:

1.專案問題我基本都略過了,但不代表不重要,相反專案非常重要,基本上前面的面試官上來都會先問專案,再問技術,後面的boss面,更偏向於問專案,所以大家一定要對自己做的東西知根知底,不然很可能在某個細節上就跪了;比如..你的專案是做什麼的,你的職責是什麼,專案架構圖怎樣的,叢集規模怎樣,tps多少,這個點這樣設計的理由是什麼,有什麼好處,為什麼選用這個技術,而不是那個技術,你覺得專案中還有哪些地方需要最佳化的

2.做專案時遇到過什麼難題,怎麼解決的?這是個高頻題!boss面都喜歡問這個問題(博主遇到過不下四次),你有遇到過那是最好,沒有最好也造一個..

3.簡歷裡寫的每一個技術棧,請你慎重,最起碼基本原理你得懂,才好寫到簡歷上,面試官都會按簡歷上的技術棧來問,如果你只是用過,建議不要寫上去;換句話說,你要想多寫點技術棧,建議把原理搞搞清楚,能選幾個去深入那是最好了

4.如果你對技術追求比較高,面試過程中你同樣要注意考察面試官的技術水平,如果技術問題寥寥無幾或者佔比很低,說明公司對技術這塊並不太重視,技術實力應該也是平平,選擇時就要謹慎(如果你打算去扛把子,請忽略..);有些面試官雖然一直在問技術問題,但是你會發現每道題問完沒有任何深入,就開始問下一題了,這種情況,要嘛是你答得不對路,要嘛是面試官在水!

5.最好有一個深入瞭解的技術棧,並在簡歷裡突出一下,在面試過程中儘量引導面試官問你這方面的問題,深入的瞭解可以讓你說的更透徹,關鍵是可以說很長時間..可以大大提高面試成功率;樓主對netty瞭解的比較多,業餘時間還寫了個rpc,好幾場面試都靠netty和rpc耗了不少時間,所以覺得在深入一個技術棧方面花時間,價效比還是蠻高的

6.為啥離職,高頻題!boss和hr面都喜歡問:不要說得過於簡單,比如你答是為了更好的技術平臺、為了更好的待遇,雖然跳槽大多是這兩個原因,但不加修飾的說出來會顯得你不太有人情味,那麼多面試者,能到這個環節的也有不少,多準備點內容,讓人覺得你是經過認真考慮、想好了才要離職的,當然就更偏向於你啦;比如”我對自己的要求一直挺高,這幾年表現得也還不錯,領導和同事都很認可,但是行業/公司這兩年效益不太好,工資漲幅不太如意,加上我平時業餘時間也積累的蠻多,所以希望找一個大點的平臺,更好的發揮自己的實力….”,你可以結合自己的實際情況,多準備點措辭

7.職業規劃,高頻題!boss和hr面都喜歡問:和上面這題類似,不要說得過於簡單,我再舉個例子,”我工作了X年了,這些年大大小小的專案都做過,團隊帶過,最近也一直在做架構設計,未來如果可以繼續做架構設計、或者有機會做上團隊leader,我覺得都符合我的預期”

8.興趣愛好裡如果寫了愛看書,有些領導或者hr會問你最近都在看些什麼書,別露餡了

9.你覺得你有哪些優點:要注意的是,一般這個問題問完會接著讓你舉個例子說明下為啥具備這個優點,所以你在準備時,不要想當然,一個優點要對應一個案例,有理有據才能讓人信服…

10.你覺得你有哪些缺點:這個答不好就是送命題了,比如你說”我覺得我有點內向,不善於溝通”

 別真的說自己的缺點就好..

11.多找找內推渠道!比你自己亂投機會大得多,前面已經說了,各位讀者自己去找找吧..

另外,因為已經加過上面一些公司的hr,如果你感興趣,並且你的base也在上海,可以私信我,咱們試試內推…

暫時就寫這麼多了,祝各位好運…

本文章已修改原文用詞符合繁體字使用者習慣使其容易閱讀

版權宣告:此處為CSDN博主「wb_snail」的原創文章,依據CC 4.0 BY-SA版權協議,轉載請附上原文出處連結及本宣告。

原文連結:https://blog.csdn.net/wb_snail/article/details/108134550