1. 程式人生 > >一份來自一月寒冬互聯網一線的面經(附面試題)

一份來自一月寒冬互聯網一線的面經(附面試題)

white col 排序 簡單 請求 走了 才會 www. 朋友

1.背景:

因為公司變動,lz不得不出來看看機會, 面試的崗位主要是後端,歷經三周,面了北京大大小小的幾家公司,最後收獲了滿意的offer。

自己也成長收獲了不少, 謹以筆記,自己可以日後回憶,也希望能幫助到最近寒冬下需要找工作的同學,在文章的後面會附上一點小心得和建議。

2.level

我是16年本科畢業, 算上實習接近2年半-3年的工作經歷吧,一直做java後端。 自己定位大概能到p6+的水平。有大廠經驗,本科211, 所以面試機會總體來說還是挺多的。

3.過程

大概是從元旦過後開始寫簡歷,投簡歷,從7號開始陸陸續續面了若幹公司, 有好有壞,以表格形式記錄如下,以我面試的時間排序。

聲明:雖然博客沒有什麽人看,但是如果您認為記錄有不實或者傷害到下述公司名譽啥的, 直接聯系我刪除即可。

有朋友建議我省掉公司名,我就用某代替吧。

公司 部門 渠道 結果 感受(辦公環境,面試難度,感受)

某信銀行

DevOps

Boss

4+0,拿到offer.

(4技術面 0hr面,下同)

某信的位置和辦公環境都很不錯,位於安貞門。

面試官人很nice,沒有多余的操作, 並且友好地幫我倒了一杯水。

主要針對簡歷中的項目,以及java基礎進行面試。

難度也是循序漸進, 說實話因為是第一家面試, 我確實很多地方沒有準備好,但是還是感謝面試官給我機會。

感受:之前感覺銀行可能比較水, 但是感覺各方面都挺與時俱進的, 待遇和人文也很有競爭力。 某信應該有大幾百人的研發團隊,各方面應該都不輸於D輪的互聯網公司。 總體是比較贊的。

某動 Boss 線上筆試

3道Codility,英文,大概3h限時, 我應該1h就寫完了,用例跑通我就提交了,但是只有一道題ac。(很奇怪,也沒有錯誤用例的提示,和LeetCode有些不一樣)

然後hr還是讓我去面試, 我拒絕了,可能是我當時已經對這家公司沒有太大興趣了。

某見科技 Boss 筆試+面試

一家AI創業公司, 看jd介紹不錯就去了。 最後發現是在一個很偏,有點破的創業園,裏面環境有點像家鄉的網吧。

筆試3道很簡單的題, 面試也沒什麽深度,面試官說實話感覺水平比較一般。

總體技術和互聯網差別很大, 我當時也是抱著練手的態度過去。 所以也沒下文了。

某vo 金融 Boss 視頻面試

1面視頻面,難度循序漸進,兩位面試官提問。 面試官說第二天hr聯系我,結果也沒聯系。我也沒問了。

主要是因為某vo在深圳,我在北京,可能我也不是很想換城市,後面投的都是在北京了。

某團 -- Boss 3+0 拿到offer

某團的環境感覺就是標準的互聯網風格,

面試官也很務實友好, 難度循序漸進,二面會問一些底層,並發的理解。

某團無論是從技術沈澱還是我面試團隊的潛力, 都是我很心儀的。

很幸運也給了我一個不錯的定級和待遇。

某米 某品 Boss 2面撤了

說實話,我開始是不想投某米的,但是考慮到我是湖北人,可能回武漢。

但是!!!我面試之前應該在脈脈上搜一搜這個部門的。

這個部門位於清河一個挺偏的地方, 周圍仿佛回到了18縣小鄉鎮。

面試官也是low爆炸了,一面面試官穿了一個脫鞋,讓我在樓下等了20min,前臺態度也不好。

然後竟然去了一個茶吧臺面試。不過一面面試官總體態度還行。(某米不提供飲水,面試官帶我去飲料機買了瓶汽水,當然是我自費,從某米出來我就有了帶水的習慣了。)

二面簡直是個活寶,上來站著問,你懂hashmap嗎, 我簡單答了一下數組+鏈表,然後按理應該往碰撞,或者並發的方向繼續問, 結果坐下,抖腿,問什麽抓包的原理,然後扯的亂七八糟的。 最後憋了一分鐘吧,出了一個很無聊的題(LeetCode第十題)。 我實在不想浪費彼此時間,就直接走了。

某米本身在我心中還是個挺有態度的公司,和雷某總也是老鄉。 哎,真是刷新了我的三觀。

某脈 效能 Boss 2+1

某脈我覺得公司和產品一樣nice, 位於768,環境很安靜。

hr笑的很開心,面試官也很有禮節。

他們主後端是用python, java主要做一些離線和效能的工作。

因為第一天3面面試官不在, hr讓我第二天過去, 但是由於面試過程中了解到是去做效能平臺,財務平臺。

秉著發展的考慮,我還是拒絕了。

但是我還是推薦某脈, 小而美。

某某跳動 某告 獵頭 3+1,拿到offer

面完某米之後,我覺得我不能在小公司上面浪費時間,同時也有了某團的offer。

於是我把其余的面試都取消了,只剩下了某條和某裏。

某條辦公環境,位置都很好。 每層都有食堂(請我吃了一頓,很好吃)

同學們給我最大的感受是 年輕,有活力,友好。 還有就是真的忙。

我身邊已經有陸陸續續不少同事選擇了某條了。

面試難度其實沒有傳說中的那麽難, 不至於手寫紅黑樹,但是基本的數據結構和算法要熟悉,每一面都會寫算法。

hr感覺也很盡心盡責。

某某巴巴 某學 Boss 3+1

某巴巴的面試總體有點失望,首先hr沒預約會議室,導致在休息區面試。 也沒有茶水,雖然我自帶了。

然後是辦公區到處都是屏幕,循環著某雲的創業視頻。

三面面試中規中矩。

某學本來就不是我投的部門(我投的u某c,不知道咋流過去了,然後讓我面試,我也想試一試吧,然後hr說我某蟻簡歷沒過,可我壓根沒投過)

某裏最難的是hr面, 一個hr非要充當心裏學家,問你人生高潮是啥, 非常沒有禮貌,說話直接打斷,也沒什麽信用,感覺這群hr把某裏搞得烏煙瘴氣。 特別是hr套路很多, 面完了說沒有hc,hc要審批(那你喊我來幹嘛) ,然後我有很優秀的同事面過了 (其實也一直拖著沒給offer),我說有人拿offer了 ,hr又說人家面的早。讓我感覺她就是在刷kpi啥的。

反正這個部門我是不建議去了, 周圍拿到某學offer的同事也打算拒了再看看。

某馬遜 物流倉儲 Boss 還沒面

4.總結及建議

1.一定要提前準備好,刷一定量的題,特別是現在各大公司都有自己的招聘系統,如果一面就掛了,可能直接就拉黑,後續面試就更難了。

2.關於刷題,大概刷完劍指offer上面的經典題, 或者leetcode前100道應該就夠了,我建議有選擇的刷,主攻排序,鏈表,大文件處理這些面試高頻的,也有意義的。

3.關於練手,我覺得不要有太大的心裏負擔, 你去一般公司面試,對於公司可能是一種匹配,但是對個人可是一次很好的自我認知反省的機會,甚至會改變後續的很多結果。

我們結合對行業的了解,如下公司可以說小而美(其實也是大獨角獸了),本身就值得加入,面試也有很多收獲: 某輔導,某脈,某探,瓜某,某vo互聯網。

當然拿大廠的邊緣部門練手也未嘗不可,就是有風險有記錄。

當然也有一些黑名單,面試官迷之自信,態度傲慢,技術淺顯, 建議大家面試前脈脈一下。。

最後一棒子打死,感覺位於清河的公司,可能都不太利於個人生活和發展。

4.關於基礎,我在下面附上一些前輩整理好的url。一定要夯實打撈。

5.我覺得面試禮儀是衡量雙方的重要標準, 面試者要註重自己的儀表整潔,談吐禮貌自然。 可以從公司面試官的行為判斷出公司的大體人員素質,我個人比較看重公司行政或者面試官是否能給瓶礦泉水或者倒杯水,我認為這是尊重一個面試者的基本表現,雖然後來我都是自己帶水。 我面試中就某米和某裏沒有提供(並且某裏某學是飯點約去面試,也不管飯,餓著肚子從5點面到9點多),然後就是雙方是否守時,我一般提前20分鐘到,提前10分鐘給hr打個電話。

6.關於面試難度,我覺得正常應該是圍繞簡歷和基礎循序漸進,一上來手撕紅黑樹,給個hard基本要dp的,或許不是真心想招人的。

當然,即使難點也不要慌, 表達好自己的思考過程, 即使錯了也沒太大關系。

其他的想到在整理吧。

5.面試題+基礎

各家的面試題其實都大同小異, 掌握基礎和原理,走到哪都不怕。

電腦沒電了 明天去公司再整理格式吧。

reids

知道redis嗎,redis是如何做持久化的

介紹下redis的特點,redis的基本數據結構,數據持久化方式,主從之間如何同步;

導致redis性能瓶頸的操作

redis有哪些接口

Redis的實現模式;

redis為什麽這麽快?

java-core

1、List 和 Set 的區別2、HashSet 是如何保證不重復的3、HashMap 是線程安全的嗎,為什麽不是線程安全的(最好畫圖說明多線程環境下不安全)?4、HashMap 的擴容過程5、HashMap 1.7 與 1.8 區別,說明 1.8 做了哪些優化,如何優化的?6、final finally finalize7、強引用 、軟引用、 弱引用、虛引用8、Java反射9、Arrays.sort 實現原理和 Collection 實現原理10、LinkedHashMap的應用11、cloneable接口實現原理12、異常分類以及處理機制13、wait和sleep的區別14、數組在內存中如何分配

java-並發

1、synchronized 的實現原理以及鎖優化?2、volatile 的實現原理?3、Java 的信號燈?4、synchronized 在靜態方法和普通方法的區別?5、怎麽實現所有線程在等待某個事件的發生才會去執行?6、CAS?CAS 有什麽缺陷,如何解決?7、synchronized 和 lock 有什麽區別?8、Hashtable 是怎麽加鎖的9、HashMap 的並發問題?10、ConcurrenHashMap 介紹?1.8 中為什麽要用紅黑樹?11、AQS12、如何檢測死鎖?怎麽預防死鎖?13、Java 內存模型?14、如何保證多線程下 i++ 結果正確?15、線程池的種類,區別和使用場景?16、分析線程池的實現原理和線程的調度過程?17、線程池如何調優,最大數目如何確認?18、ThreadLocal原理,用的時候需要註意什麽?19、CountDownLatch 和 CyclicBarrier 的用法,以及相互之間的差別?20、LockSupport工具21、Condition接口及其實現原理22、Fork/Join框架的理解23、分段鎖的原理,鎖力度減小的思考24、八種阻塞隊列以及各個阻塞隊列的特性

  • 單機上一個線程池正在處理服務,如果忽然斷電了怎麽辦(正在處理和阻塞隊列裏的請求怎麽處理)?
  • 為什麽要使用線程池?
  • 線程池有什麽作用?
  • 說說幾種常見的線程池及使用場景。
  • 線程池都有哪幾種工作隊列?
  • 怎麽理解無界隊列和有界隊列?
  • 線程池中的幾種重要的參數及流程說明。

JVM

1、詳細jvm內存模型2、講講什麽情況下回出現內存溢出,內存泄漏? 3、說說Java線程棧4、JVM 年輕代到年老代的晉升過程的判斷條件是什麽呢?5、JVM 出現 fullGC 很頻繁,怎麽去線上排查問題?6、類加載為什麽要使用雙親委派模式,有沒有什麽場景是打破了這個模式?7、類的實例化順序8、JVM垃圾回收機制,何時觸發MinorGC等操作9、JVM 中一次完整的 GC 流程(從 ygc 到 fgc)是怎樣的10、各種回收器,各自優缺點,重點CMS、G111、各種回收算法12、OOM錯誤,stackoverflow錯誤,permgen space錯誤

  • 說一下對jvm的理解,jvm的組成部分,各個部分的存儲內容以及常見的jvm的問題排查步驟。
  • JVM熟不熟悉?簡單說說類加載過程,裏面執行的那些操作?
  • JVM方法區存儲內容 是否會動態擴展 是否會出現內存溢出 出現的原因有哪些。
  • 介紹介紹CMS
  • 介紹介紹G1。
  • 為什麽jdk8用metaspace數據結構用來替代perm
  • 簡單談談堆外內存以及你的理解和認識。
  • JVM的內存模型的理解,threadlocal使用場景及註意事項?
  • JVM老年代和新生代的比例?
  • jstack,jmap,jutil分別的意義?如何線上排查JVM的相關問題?
  • Java虛擬機中,數據類型可以分為哪幾類?
  • 怎麽理解棧、堆?堆中存什麽?棧中存什麽?
  • 為什麽要把堆和棧區分出來呢?棧中不是也可以存儲數據嗎?
  • Java中,什麽是是棧的起始點,同是也是程序的起始點?
  • 為什麽不把基本類型放堆中呢?
  • Java中的參數傳遞時傳值呢?還是傳引用?
  • Java中有沒有指針的概念?
  • Java中,棧的大小通過什麽參數來設置?
  • 一個空Object對象的占多大空間?
  • 對象引用類型分為哪幾類?
  • 講一講垃圾回收算法。
  • 如何解決內存碎片的問題?
  • 如何解決同時存在的對象創建和對象回收問題?
  • 講一講內存分代及生命周期。
  • 什麽情況下觸發垃圾回收?
  • 如何選擇合適的垃圾收集算法?
  • JVM中最大堆大小有沒有限制?
  • 堆大小通過什麽參數設置?
  • JVM有哪三種垃圾回收器?
  • 吞吐量優先選擇什麽垃圾回收器?響應時間優先呢?
  • 如何進行JVM調優?有哪些方法?
  • 如何理解內存泄漏問題?有哪些情況會導致內存泄露?如何解決?

Spring

1、BeanFactory 和 FactoryBean?2、Spring IOC 的理解,其初始化過程?3、BeanFactory 和 ApplicationContext?4、Spring Bean 的生命周期,如何被管理的?5、Spring Bean 的加載過程是怎樣的?6、如果要你實現Spring AOP,請問怎麽實現?7、如果要你實現Spring IOC,你會註意哪些問題?8、Spring 是如何管理事務的,事務管理機制?9、Spring 的不同事務傳播行為有哪些,幹什麽用的?10、Spring 中用到了那些設計模式?11、Spring MVC 的工作原理?12、Spring 循環註入的原理?13、Spring AOP的理解,各個術語,他們是怎麽相互工作的?14、Spring 如何保證 Controller 並發的安全?

Netty

分布式相關

1、Dubbo的底層實現原理和機制2、描述一個服務從發布到被消費的詳細過程3、分布式系統怎麽做服務治理4、接口的冪等性的概念5、消息中間件如何解決消息丟失問題6、Dubbo的服務請求失敗怎麽處理7、重連機制會不會造成錯誤8、對分布式事務的理解9、如何實現負載均衡,有哪些算法可以實現?10、Zookeeper的用途,選舉的原理是什麽?11、數據的垂直拆分水平拆分。12、zookeeper原理和適用場景13、zookeeper watch機制14、redis/zk節點宕機如何處理15、分布式集群下如何做到唯一序列號16、如何做一個分布式鎖17、用過哪些MQ,怎麽用的,和其他mq比較有什麽優缺點,MQ的連接是線程安全的嗎18、MQ系統的數據如何保證不丟失19、列舉出你能想到的數據庫分庫分表策略;分庫分表後,如何解決全表查詢的問題20、zookeeper的選舉策略21、全局ID

mysql:

http://www.iocoder.cn/Interview/MySQL-01/

mysql索引的實現原理

Innodb中,什麽是聚集索引,非聚集索引,他們是什麽關系

插入一條記錄時,聚集索引和非聚集索引是如何修改的

建立索引的標準是什麽

查看 SQL 是不是使用了索引?(有什麽工具)

SQL 索引的順序,字段的順序

MySQL 分頁查詢語句,mysql分頁有什麽優化

一份來自一月寒冬互聯網一線的面經(附面試題)