一份来自一月寒冬互联网一线的面经(附面试题)
1.背景:
因為公司變動,lz不得不出來看看機會, 面試的崗位主要是后端,歷經(jīng)三周,面了北京大大小小的幾家公司,最后收獲了滿意的offer。
自己也成長收獲了不少, 謹以筆記,自己可以日后回憶,也希望能幫助到最近寒冬下需要找工作的同學,在文章的后面會附上一點小心得和建議。
?
2.level
我是16年本科畢業(yè), 算上實習接近2年半-3年的工作經(jīng)歷吧,一直做java后端。? 自己定位大概能到p6+的水平。有大廠經(jīng)驗,本科211, 所以面試機會總體來說還是挺多的。
?
3.過程
大概是從元旦過后開始寫簡歷,投簡歷,從7號開始陸陸續(xù)續(xù)面了若干公司, 有好有壞,以表格形式記錄如下,以我面試的時間排序。
聲明:雖然博客沒有什么人看,但是如果您認為記錄有不實或者傷害到下述公司名譽啥的, 直接聯(lián)系我刪除即可。
有朋友建議我省掉公司名,我就用某代替吧。
| 公司 | 部門 | ?渠道 | ?結(jié)果 | ?感受(辦公環(huán)境,面試難度,感受) |
| ? 某信銀行 | ? DevOps | Boss | ?4+0,拿到offer. (4技術面 0hr面,下同) | ?某信的位置和辦公環(huán)境都很不錯,位于安貞門。 面試官人很nice,沒有多余的操作, 并且友好地幫我倒了一杯水。 主要針對簡歷中的項目,以及java基礎進行面試。 難度也是循序漸進, 說實話因為是第一家面試, 我確實很多地方?jīng)]有準備好,但是還是感謝面試官給我機會。 感受:之前感覺銀行可能比較水, 但是感覺各方面都挺與時俱進的, 待遇和人文也很有競爭力。 某信應該有大幾百人的研發(fā)團隊,各方面應該都不輸于D輪的互聯(lián)網(wǎng)公司。 總體是比較贊的。 |
| ?某動 | ? | ?Boss | ?線上筆試 | ?3道Codility,英文,大概3h限時, 我應該1h就寫完了,用例跑通我就提交了,但是只有一道題ac。(很奇怪,也沒有錯誤用例的提示,和LeetCode有些不一樣) ?然后hr還是讓我去面試, 我拒絕了,可能是我當時已經(jīng)對這家公司沒有太大興趣了。 |
| 某見科技 | ? | ?Boss | 筆試+面試 | 一家AI創(chuàng)業(yè)公司, 看jd介紹不錯就去了。 最后發(fā)現(xiàn)是在一個很偏,有點破的創(chuàng)業(yè)園,里面環(huán)境有點像家鄉(xiāng)的網(wǎng)吧。 筆試3道很簡單的題, 面試也沒什么深度,面試官說實話感覺水平比較一般。 總體技術和互聯(lián)網(wǎng)差別很大, 我當時也是抱著練手的態(tài)度過去。 所以也沒下文了。 |
| ?某vo | ?金融 | Boss? | ?視頻面試 | ?1面視頻面,難度循序漸進,兩位面試官提問。 面試官說第二天hr聯(lián)系我,結(jié)果也沒聯(lián)系。我也沒問了。 主要是因為某vo在深圳,我在北京,可能我也不是很想換城市,后面投的都是在北京了。 |
| ?某團 | ?-- | ?Boss | 3+0 拿到offer? | 某團的環(huán)境感覺就是標準的互聯(lián)網(wǎng)風格, 面試官也很務實友好, 難度循序漸進,二面會問一些底層,并發(fā)的理解。 某團無論是從技術沉淀還是我面試團隊的潛力, 都是我很心儀的。 很幸運也給了我一個不錯的定級和待遇。 |
| ?某米 | ?某品 | ?Boss | 2面撤了 | ?說實話,我開始是不想投某米的,但是考慮到我是湖北人,可能回武漢。 但是!!!我面試之前應該在脈脈上搜一搜這個部門的。 這個部門位于清河一個挺偏的地方, 周圍仿佛回到了18縣小鄉(xiāng)鎮(zhèn)。 面試官也是low爆炸了,一面面試官穿了一個脫鞋,讓我在樓下等了20min,前臺態(tài)度也不好。 然后竟然去了一個茶吧臺面試。不過一面面試官總體態(tài)度還行。(某米不提供飲水,面試官帶我去飲料機買了瓶汽水,當然是我自費,從某米出來我就有了帶水的習慣了。) 二面簡直是個活寶,上來站著問,你懂hashmap嗎, 我簡單答了一下數(shù)組+鏈表,然后按理應該往碰撞,或者并發(fā)的方向繼續(xù)問, 結(jié)果坐下,抖腿,問什么抓包的原理,然后扯的亂七八糟的。 最后憋了一分鐘吧,出了一個很無聊的題(LeetCode第十題)。 我實在不想浪費彼此時間,就直接走了。 某米本身在我心中還是個挺有態(tài)度的公司,和雷某總也是老鄉(xiāng)。? 哎,真是刷新了我的三觀。 |
| ?某脈 | ?效能 | ?Boss | ?2+1 | ?某脈我覺得公司和產(chǎn)品一樣nice, 位于768,環(huán)境很安靜。 hr笑的很開心,面試官也很有禮節(jié)。 他們主后端是用python, java主要做一些離線和效能的工作。 因為第一天3面面試官不在, hr讓我第二天過去, 但是由于面試過程中了解到是去做效能平臺,財務平臺。 秉著發(fā)展的考慮,我還是拒絕了。? 但是我還是推薦某脈, 小而美。 |
| ?某某跳動 | ?某告 | ?獵頭 | ?3+1,拿到offer | ?面完某米之后,我覺得我不能在小公司上面浪費時間,同時也有了某團的offer。 于是我把其余的面試都取消了,只剩下了某條和某里。 某條辦公環(huán)境,位置都很好。 每層都有食堂(請我吃了一頓,很好吃) 同學們給我最大的感受是 年輕,有活力,友好。 還有就是真的忙。 我身邊已經(jīng)有陸陸續(xù)續(xù)不少同事選擇了某條了。 面試難度其實沒有傳說中的那么難, 不至于手寫紅黑樹,但是基本的數(shù)據(jù)結(jié)構(gòu)和算法要熟悉,每一面都會寫算法。 hr感覺也很盡心盡責。 |
| 某某巴巴 | 某學 | Boss | 3+1 | 某巴巴的面試總體有點失望,首先hr沒預約會議室,導致在休息區(qū)面試。 也沒有茶水,雖然我自帶了。 然后是辦公區(qū)到處都是屏幕,循環(huán)著某云的創(chuàng)業(yè)視頻。 三面面試中規(guī)中矩。 某學本來就不是我投的部門(我投的u某c,不知道咋流過去了,然后讓我面試,我也想試一試吧,然后hr說我某蟻簡歷沒過,可我壓根沒投過) 某里最難的是hr面,? 一個hr非要充當心里學家,問你人生高潮是啥, 非常沒有禮貌,說話直接打斷,也沒什么信用,感覺這群hr把某里搞得烏煙瘴氣。? ?特別是hr套路很多, 面完了說沒有hc,hc要審批(那你喊我來干嘛) ,然后我有很優(yōu)秀的同事面過了 (其實也一直拖著沒給offer),我說有人拿offer了 ,hr又說人家面的早。讓我感覺她就是在刷kpi啥的。 反正這個部門我是不建議去了, 周圍拿到某學offer的同事也打算拒了再看看。 |
| 某馬遜 | 物流倉儲 | Boss | 還沒面 | ? |
?
4.總結(jié)及建議
1.一定要提前準備好,刷一定量的題,特別是現(xiàn)在各大公司都有自己的招聘系統(tǒng),如果一面就掛了,可能直接就拉黑,后續(xù)面試就更難了。
2.關于刷題,大概刷完劍指offer上面的經(jīng)典題, 或者leetcode前100道應該就夠了,我建議有選擇的刷,主攻排序,鏈表,大文件處理這些面試高頻的,也有意義的。
3.關于練手,我覺得不要有太大的心里負擔, 你去一般公司面試,對于公司可能是一種匹配,但是對個人可是一次很好的自我認知反省的機會,甚至會改變后續(xù)的很多結(jié)果。
我們結(jié)合對行業(yè)的了解,如下公司可以說小而美(其實也是大獨角獸了),本身就值得加入,面試也有很多收獲: 某輔導,某脈,某探,瓜某,某vo互聯(lián)網(wǎng)。
當然拿大廠的邊緣部門練手也未嘗不可,就是有風險有記錄。
當然也有一些黑名單,面試官迷之自信,態(tài)度傲慢,技術淺顯, 建議大家面試前脈脈一下。。
最后一棒子打死,感覺位于清河的公司,可能都不太利于個人生活和發(fā)展。
4.關于基礎,我在下面附上一些前輩整理好的url。一定要夯實打撈。
5.關于面試禮儀,我覺得面試禮儀是衡量雙方的重要標準, 面試者要注重自己的儀表整潔,談吐禮貌自然。 可以從公司面試官的行為判斷出公司的大體人員素質(zhì),我個人比較看重公司行政或者面試官是否能給瓶礦泉水或者倒杯水,我認為這是尊重一個面試者的基本表現(xiàn),雖然后來我都是自己帶水。 我面試中就某米和某里沒有提供(并且某里某學是飯點約去面試,也不管飯,餓著肚子從5點面到9點多),然后就是雙方是否守時,我一般提前20分鐘到,提前10分鐘給hr打個電話。?
6.關于面試難度,我覺得正常應該是圍繞簡歷和基礎循序漸進,一上來手撕紅黑樹,給個hard基本要dp的,或許不是真心想招人的。?
當然,即使難點也不要慌, 表達好自己的思考過程,展現(xiàn)自己一個綜合的素質(zhì) ,即使錯了也不會被一票否定。
7.關于面試技巧, 之前看了有的前輩說盡量把面試官往自己熟悉的領域帶,有一點道理, 但是我沒有刻意這樣操作過, 不會的一般思考一下,直接說不確定/沒研究過/不會,然后說一個可能的原理,如果合理我認為也能體現(xiàn)一種技術功底和應變能力。
其他的想到在整理吧。
?
?
5.面試題+基礎
各家的面試題其實都大同小異, 掌握基礎和原理,走到哪都不怕。
?基礎
leetcode上有一些總結(jié),star數(shù)非常高了。貼上url
https://github.com/CyC2018/CS-Notes
https://github.com/Snailclimb/JavaGuide
這兩個大概只是個提綱,如果是高級職位,深度可能不夠,具體的還得看書。
另外強烈推薦?http://www.iocoder.cn/ 芋道,我的面試題很多都是從上面找的。平時對提高也有幫助。
?
?reids
redis的話,我推薦《Redis深度歷險:核心原理和應用實踐》 和《redis設計與實現(xiàn)》
?
- 知道redis嗎,redis是如何做持久化的
- 介紹下redis的特點,redis的基本數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)持久化方式,主從之間如何同步;
- 導致redis性能瓶頸的操作
- redis有哪些接口
- Redis的實現(xiàn)模式;
- redis為什么這么快?
?
?
java-core
基礎的話主要看源碼吧, collection和juc里面的。 然后就是《java編程思想》和《java核心技術 卷1.2》(有很多過時的章節(jié)直接跳過即可)?
- 1、List 和 Set 的區(qū)別
- 2、HashSet 是如何保證不重復的
- 3、HashMap 是線程安全的嗎,為什么不是線程安全的(最好畫圖說明多線程環(huán)境下不安全)?
- 4、HashMap 的擴容過程
- 5、HashMap 1.7 與 1.8 的 區(qū)別,說明 1.8 做了哪些優(yōu)化,如何優(yōu)化的?
- 6、final finally finalize
- 7、強引用 、軟引用、 弱引用、虛引用
- 8、Java反射
- 9、Arrays.sort 實現(xiàn)原理和 Collection 實現(xiàn)原理
- 10、LinkedHashMap的應用11、cloneable接口實現(xiàn)原理
- 12、異常分類以及處理機制
- 13、wait和sleep的區(qū)別
- 14、數(shù)組在內(nèi)存中如何分配
?
?
java-并發(fā)
我推薦《java并發(fā)編程藝術》 我覺得比 《java并發(fā)編程實戰(zhàn)》更好理解一點。
?
- 1、synchronized 的實現(xiàn)原理以及鎖優(yōu)化?
- 2、volatile 的實現(xiàn)原理?
- 3、Java 的信號燈?
- 4、synchronized 在靜態(tài)方法和普通方法的區(qū)別?
- 5、怎么實現(xiàn)所有線程在等待某個事件的發(fā)生才會去執(zhí)行?
- 6、CAS?CAS 有什么缺陷,如何解決?
- 7、synchronized 和 lock 有什么區(qū)別?
- 8、Hashtable 是怎么加鎖的 ?
- 9、HashMap 的并發(fā)問題?
- 10、ConcurrenHashMap 介紹?1.8 中為什么要用紅黑樹?
- 11、AQS
- 12、如何檢測死鎖?怎么預防死鎖?
- 13、Java 內(nèi)存模型?
- 14、如何保證多線程下 i++ 結(jié)果正確?
- 15、線程池的種類,區(qū)別和使用場景?
- 16、分析線程池的實現(xiàn)原理和線程的調(diào)度過程?
- 17、線程池如何調(diào)優(yōu),最大數(shù)目如何確認?
- 18、ThreadLocal原理,用的時候需要注意什么?
- 19、CountDownLatch 和 CyclicBarrier 的用法,以及相互之間的差別?
- 20、LockSupport工具
- 21、Condition接口及其實現(xiàn)原理
- 22、Fork/Join框架的理解
- 23、分段鎖的原理,鎖力度減小的思考
- 24、八種阻塞隊列以及各個阻塞隊列的特性
- 單機上一個線程池正在處理服務,如果忽然斷電了怎么辦(正在處理和阻塞隊列里的請求怎么處理)?
- 為什么要使用線程池?
- 線程池有什么作用?
- 說說幾種常見的線程池及使用場景。
- 線程池都有哪幾種工作隊列?
- 怎么理解無界隊列和有界隊列?
- 線程池中的幾種重要的參數(shù)及流程說明。
?
JVM
JVM應該就一本《深入理解JVM虛擬機》 就夠了, 但是我買的版本比較老,1.8以后內(nèi)存區(qū)域做了一些改動,自己的得知道。
?
- 1、詳細jvm內(nèi)存模型
- 2、講講什么情況下回出現(xiàn)內(nèi)存溢出,內(nèi)存泄漏?
- 3、說說Java線程棧
- 4、JVM 年輕代到年老代的晉升過程的判斷條件是什么呢?
- 5、JVM 出現(xiàn) fullGC 很頻繁,怎么去線上排查問題?
- 6、類加載為什么要使用雙親委派模式,有沒有什么場景是打破了這個模式?
- 7、類的實例化順序
- 8、JVM垃圾回收機制,何時觸發(fā)MinorGC等操作
- 9、JVM 中一次完整的 GC 流程(從 ygc 到 fgc)是怎樣的
- 10、各種回收器,各自優(yōu)缺點,重點CMS、G1
- 11、各種回收算法
- 12、OOM錯誤,stackoverflow錯誤,permgen space錯誤
- 說一下對jvm的理解,jvm的組成部分,各個部分的存儲內(nèi)容以及常見的jvm的問題排查步驟。
- 對JVM熟不熟悉?簡單說說類加載過程,里面執(zhí)行的那些操作?
- JVM方法區(qū)存儲內(nèi)容 是否會動態(tài)擴展 是否會出現(xiàn)內(nèi)存溢出 出現(xiàn)的原因有哪些。
- 介紹介紹CMS。
- 介紹介紹G1。
- 為什么jdk8用metaspace數(shù)據(jù)結(jié)構(gòu)用來替代perm?
- 簡單談談堆外內(nèi)存以及你的理解和認識。
- JVM的內(nèi)存模型的理解,threadlocal使用場景及注意事項?
- JVM老年代和新生代的比例?
- jstack,jmap,jutil分別的意義?如何線上排查JVM的相關問題?
- Java虛擬機中,數(shù)據(jù)類型可以分為哪幾類?
- 怎么理解棧、堆?堆中存什么?棧中存什么?
- 為什么要把堆和棧區(qū)分出來呢?棧中不是也可以存儲數(shù)據(jù)嗎?
- 在Java中,什么是是棧的起始點,同是也是程序的起始點?
- 為什么不把基本類型放堆中呢?
- Java中的參數(shù)傳遞時傳值呢?還是傳引用?
- Java中有沒有指針的概念?
- Java中,棧的大小通過什么參數(shù)來設置?
- 一個空Object對象的占多大空間?
- 對象引用類型分為哪幾類?
- 講一講垃圾回收算法。
- 如何解決內(nèi)存碎片的問題?
- 如何解決同時存在的對象創(chuàng)建和對象回收問題?
- 講一講內(nèi)存分代及生命周期。
- 什么情況下觸發(fā)垃圾回收?
- 如何選擇合適的垃圾收集算法?
- JVM中最大堆大小有沒有限制?
- 堆大小通過什么參數(shù)設置?
- JVM有哪三種垃圾回收器?
- 吞吐量優(yōu)先選擇什么垃圾回收器?響應時間優(yōu)先呢?
- 如何進行JVM調(diào)優(yōu)?有哪些方法?
- 如何理解內(nèi)存泄漏問題?有哪些情況會導致內(nèi)存泄露?如何解決?
?
?
Spring
spring的話,感覺現(xiàn)在問的少了, spring cloud會問的比較多, 應該算在微服務/分布式的知識點里面。
- 1、BeanFactory 和 FactoryBean?
- 2、Spring IOC 的理解,其初始化過程?
- 3、BeanFactory 和 ApplicationContext?
- 4、Spring Bean 的生命周期,如何被管理的?
- 5、Spring Bean 的加載過程是怎樣的?
- 6、如果要你實現(xiàn)Spring AOP,請問怎么實現(xiàn)?
- 7、如果要你實現(xiàn)Spring IOC,你會注意哪些問題?
- 8、Spring 是如何管理事務的,事務管理機制?
- 9、Spring 的不同事務傳播行為有哪些,干什么用的?
- 10、Spring 中用到了那些設計模式?
- 11、Spring MVC 的工作原理?
- 12、Spring 循環(huán)注入的原理?
- 13、Spring AOP的理解,各個術語,他們是怎么相互工作的?
- 14、Spring 如何保證 Controller 并發(fā)的安全?
?
Netty
?我不會
?
分布式相關
主要考察對cap和base的理解吧, 我沒有系統(tǒng)學習過,主要靠平時的積累。
- 1、Dubbo的底層實現(xiàn)原理和機制
- 2、描述一個服務從發(fā)布到被消費的詳細過程
- 3、分布式系統(tǒng)怎么做服務治理
- 4、接口的冪等性的概念
- 5、消息中間件如何解決消息丟失問題
- 6、Dubbo的服務請求失敗怎么處理
- 7、重連機制會不會造成錯誤
- 8、對分布式事務的理解
- 9、如何實現(xiàn)負載均衡,有哪些算法可以實現(xiàn)?
- 10、Zookeeper的用途,選舉的原理是什么?
- 11、數(shù)據(jù)的垂直拆分水平拆分。
- 12、zookeeper原理和適用場景
- 13、zookeeper watch機制
- 14、redis/zk節(jié)點宕機如何處理
- 15、分布式集群下如何做到唯一序列號
- 16、如何做一個分布式鎖
- 17、用過哪些MQ,怎么用的,和其他mq比較有什么優(yōu)缺點,MQ的連接是線程安全的嗎
- 18、MQ系統(tǒng)的數(shù)據(jù)如何保證不丟失
- 19、列舉出你能想到的數(shù)據(jù)庫分庫分表策略;分庫分表后,如何解決全表查詢的問題
- 20、zookeeper的選舉策略
- 21、全局ID
?
?
mysql:
《Mysql技術內(nèi)幕-innodb存儲引擎》就夠了。
- mysql索引的實現(xiàn)原理
- Innodb中,什么是聚集索引,非聚集索引,他們是什么關系
- 插入一條記錄時,聚集索引和非聚集索引是如何修改的
- 建立索引的標準是什么
- 查看 SQL 是不是使用了索引?(有什么工具)
- SQL 索引的順序,字段的順序
- MySQL 分頁查詢語句,mysql分頁有什么優(yōu)化
?
?
轉(zhuǎn)載于:https://www.cnblogs.com/novaCN/p/10328380.html
總結(jié)
以上是生活随笔為你收集整理的一份来自一月寒冬互联网一线的面经(附面试题)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 爬虫-windows下安装Scrapy及
- 下一篇: Java基础学习-Collection体