程序員深漂 6 年,回西安工作了
你好,我是 Guide。分享一篇朋友從深圳回到西安之后的面經(jīng)總結。
下面是正文。
很多讀者都知道我今年是準備回老家西安了,如果從我第一次踏上深圳這片土地算起,我已經(jīng)深漂了整整 6 年了。今年留深過年期間,我們經(jīng)過家庭會議的討論,決定回家。
回老家西安的這個想法其實之前一直也有過,但是呢,在這里工作久了之后,做出這個決定還是挺需要勇氣的。好吧,說白了就是這些年也有努力,但是還是買不起深圳的房子,也沒有魄力貸款幾百萬,還款 30 年,那樣自己的壓力實在也太大了。我和我家小白還是喜歡安逸一些,我們認為人生嘛,掙錢也不是最重要的,每個月還款 2w 左右 ,還款 30 年,這個壓力還是太大了。同時飲食習慣也不太一樣,夏天太熱,蟑螂太多等等都是說服我們離深回家的原因。不過,話說回來,也是因為我和小白都是西安人,對于回家選擇哪個城市不存在爭議,而且西安 IT 互聯(lián)網(wǎng)環(huán)境這幾年也不錯,找工作沒啥問題(深圳這幾年也沒白混,成長還是很大的 ??)。最近兩周也在陸陸續(xù)續(xù)的面試找西安的工作,下面就給大家分享一些西安公司的面試題,有的我記錄了,有的忘記了,希望對大家有幫助。
豐疆智能
西安研發(fā)中心,是深圳或者北京的面試官來面。
一面
主要問了項目和一些基礎技術,項目細節(jié)問的非常細。
線上筆試
在線筆試,主要是考察設計和代碼能力。
二面
面試體驗很差,不停的 PUA,讓給自己打分、筆試打分,反正就是咄咄逼人的感覺,語氣也很不耐煩,互相不合適吧~
平時如何評估工作量的? Java 中的集合有哪些?ArrayList 的擴容機制?無參構建函數(shù)初始為空數(shù)組,添加第一個元素時,創(chuàng)建長度為 10;當插入元素不夠用時,擴容 1.5 倍,如果還不夠用就擴容為需要的大小。 HashMap 什么場景下是線程不安全的?會導致什么后果? 線程池有哪些參數(shù)?并介紹參數(shù)在什么場景下使用? 當核心線程數(shù)未滿,繼續(xù)提交任務,是復用已經(jīng)空閑的線程還是繼續(xù)創(chuàng)建? Netty 中的核心組件有哪些?ByteBuf 有哪些方法?Netty 如何實現(xiàn)拆包?自定義拆包處理器是怎么實現(xiàn)的? Spring 中有兩個同樣類型的 Bean,如何注入?如何實現(xiàn)全局統(tǒng)一注入? AQS 了解?里面都有哪些屬性?AQS 有幾種模式?你對 AQS 還有哪些理解? AQS 的公平鎖和非公平鎖原理是什么?讀寫鎖的互斥規(guī)則? Mybatis 如何實現(xiàn)結果綁定到 Java 對象的? Spring 為什么要有三級緩存? RocketMQ 怎么保證消息不丟,同步發(fā)送的 API 是啥?消費者如何保證消息不丟,除了 ACK 機制還有什么方法可以保證? JVM 的內存模型?哪個區(qū)域不會發(fā)生 OOM? JVM 都可以調優(yōu)哪些參數(shù),JDK8 默認的垃圾回收器是啥?都有哪些常見的垃圾回收算法?CMS 垃圾回收卡頓暫停了怎么處理?
還有一些問題,沒聽明白要問啥,就詢問能具體解釋一下?他直接說他知道了,下一個問題。。直接就想掛電話了~~
西安移動研究院
倆小時 三個人輪流問
一面
介紹項目&細節(jié)&自己負責了哪些編碼工作; 包裝類是深拷貝還是淺拷貝? Redis 的 key 刪除策略? 寫代碼時常見的內存泄漏? MySQL 索引的結構和搜索數(shù)據(jù)的過程? 數(shù)據(jù)庫的隔離級別?分別解決什么問題? 常用的 Spring Boot Starter 有哪些? Netty 為什么這么快?Epoll 的實現(xiàn)原理? 線程 A 中創(chuàng)建線程 B,線程 B 如何捕獲線程 A 的異常? K8s 中 config 中環(huán)境變量修改,Docker 能否獲取?配置文件修改 Docker 能否獲?。?/section> 接口限流如何實現(xiàn),Guava 和 Redis 如何在項目中結合使用的? HashMap 能否直接遍歷刪除?CurrentHashMap 能否遍歷刪除? 有哪些讓線程阻塞的方法?有哪些類使用了 LockSupport? 泛型中 Extends 和 Super 關鍵字的區(qū)別?在 put 操作多時用哪種,為什么?在 get 操作多時用哪種,為什么? 頻繁往外讀取內容的,適合用上界 Extends,因為讀取的元素都可以用上界定義的類型來接收,父類可以指向子類,如果用 Super,只能用 Object 類型類接收了,因為不確定是哪個父類; 經(jīng)常往里插入的,適合用下界 Super。相當于放松了插入元素的類型,既然元素是 Fruit 的基類,那往里存粒度比 Fruit 小的都可以,如果是 extends,則插入時會報錯,因為集合中不確定到底存的是哪個子類,會報錯; SpringBoot 自動裝配原理? 項目中如何做統(tǒng)一異常處理? Spring 中配置文件的加載順序? 項目中如何做監(jiān)控?JVM 進程如何監(jiān)控?機器資源如何監(jiān)控?
在冊測評
完成了在線測評,提交了薪資流水。
過了一周多了,沒有后續(xù)消息。
西安卓派
一面
耗時 1 小時
Java 反射中 Super 和 Extend 有啥區(qū)別? 線程池的運行原理?線程池大小如何設置?項目中如何使用線程池?如何防止線程池濫用?線程池中阻塞隊列的意義是啥? Spring 中的 ApplicationEvent 使用過? ThreadLocal 的數(shù)據(jù)結構?平時怎么使用? Spring 中的@Transactional 是如何使用 ThreadLocal? ThreadLocal 的 key 為什么要設置為弱引用而不用一般引用?是基于啥考慮的? 多線程中能否使用 ThreadLocal?如果要使用該怎么做? Spring 事務的隔離級別了解?你們怎么用?你怎么理解隔離級別? Spring 中的 AOP 切面,如果定義了多個增強執(zhí)行順序是怎么樣的? DDD 了解?是否知道其中的術語? 設計模式了解哪些?如何使用的?具體的使用請求參數(shù)以及響應參數(shù)是怎么設計? 設計原則中的單一職責是啥意思?給一個場景問是否應該設計成單一職責? Tomcat 的線程池大小如何配置? HTTP 協(xié)議的無狀態(tài)你怎么理解?無狀態(tài)有啥好處和壞處? 介紹項目,特別仔細的聊項目細節(jié); 如何實現(xiàn)一個分布式會議室預定系統(tǒng)?保證同一時間段會議室只能被預定成功一次? 是否愿意學英語?
二面
20 多分鐘。
hr 面,聊聊做了什么項目,遇到了最復雜的問題是啥?如何解決的?介紹公司和項目,以及相關福利。
三面
2 個半小時
上機寫代碼,兩道算法題,一道系統(tǒng)設計題。
面試過程中面試官非常耐心,寫的不好的題會給你引導優(yōu)化方向,整個過程非常愉快。
經(jīng)驗:上機考察代碼能力,如果題目沒看懂一定要積極主動詢問,然后就是如果不會解題,可以和面試官交流自己的思路,避免低頭不語,寫了半天也沒有答案;
四面
三面之后緊接著是老板面,西安這邊的研發(fā)負責人。
主要是聊項目、對于項目設計的理解,什么是好的代碼?什么是好的設計?
給出一些具體設計場景,讓做選擇,反正也沒有唯一答案,說清楚自己的考慮點和原因即可,這種就是設計模式作為理論依據(jù),然后結合平時自己的編碼實踐談談感受。
同時也聊到未來的一個發(fā)展方向,我正好最近對于后面走技術路線還是技術管理非常困惑,從聊的過程中這個問題也啟發(fā)很大。
個人感受
卓派是一家外企,內部技術氛圍很棒,從整個面試過程中都能感受到面試官非常有包容性,雖然我對于敏捷這塊很多專業(yè)名詞不太了解,也很細心的說了中文對應的翻譯,面試的同時也漲了很多見識。
公司的業(yè)務發(fā)展目前只能算一般,畢竟西安團隊只有 30 人,今年預計擴充到 50 人,卡車司機接單也是屬于一個細分小眾領域,所以公司業(yè)務發(fā)展這塊存在一定的風險。
福利待遇也很不錯,全額最高公積金,配置新款 mbp,人體工程學椅,每月團建,我覺得這種公司因為年終獎不高的緣故,肯定不會卷,不像大公司年底績效決定了一年是否白干,也就不存在拼命卷的情況。
西安騰訊云
一面
耗時:50 分鐘
自我介紹&介紹項目; 死磕項目實現(xiàn)過程和個人做了哪些事情,優(yōu)化了什么,問的很細很細; 關于線程池的一個場景題; Future 實現(xiàn)阻塞等待獲取結果的原理? 談談什么是零拷貝? 一共有幾種 IO 模型?NIO 和多路復用的區(qū)別? JDK 中的 NIO 使用的是什么模型? 可重入鎖和 Synchronized 的區(qū)別?Synchronized 的原理?可重入鎖的實現(xiàn)原理? 樂觀鎖和悲觀鎖, 讓你來寫你怎么實現(xiàn)? ReentrantLock 的實現(xiàn)原理?Synchronized 是個悲觀鎖還是樂觀鎖? Paxos 算法了解?并發(fā)提案時如何處理? B+樹聊一下?B+樹是不是有序的,怎么樣的順序? TCP 怎么實現(xiàn)擁塞控制?怎么實現(xiàn)重傳(說了思路不過具體的實現(xiàn)回答的不準確)? 看你有 JVM 調優(yōu)經(jīng)驗,介紹下如何調優(yōu)的; 算法題:給一個無序的數(shù)組,選一個隨機數(shù),實現(xiàn)左邊比它大,左右比大小,要求保持原有相對順序不變;給出的實現(xiàn)方法時間復雜度是多少?
二面
25 分鐘
兩個有序數(shù)組求交集; 項目介紹; Paxos 協(xié)議了解?工作流程是怎么樣的? 時隔太久忘記了。。
三面
25 分鐘
兩個有序數(shù)組求交集; 二叉樹如何持久化存儲; 自我介紹; 前幾次跳槽的原因? 介紹一個有技術挑戰(zhàn)的項目?追問項目細節(jié),問到有點招架不住了; 數(shù)據(jù)庫分庫分表的缺點是啥? 分布式事務如何解決?TCC 了解? 介紹下你們微服務項目的整體架構?服務間通信的原理?同步還是異步? RocketMQ 如何保證消息的準確性和安全性?
翼支付
一面
自我介紹&項目介紹; 介紹項目中如何使用微服務架構,個人主要負責了哪些模塊,用到了哪些技術; HashMap 如何減少 hash 碰撞; 什么場景需要重寫 HashCode 方法; 項目是否用到了線程池?怎么用的?常用參數(shù)有哪些? 當線程池核心大小滿了,隊列滿了,在提交任務會創(chuàng)建線程還是排隊? 談談對于數(shù)據(jù)庫索引和約束的理解; 數(shù)據(jù)庫的時間類型(DataTime&TimeStamp)?有啥區(qū)別?分別占用多大的存儲空間? Kafka 如何實高可用、可擴展; 定時任務框架了解哪些(Elastic-Job、Xxl-Job、Quartz),實現(xiàn)原理是啥,優(yōu)缺點對比; Apollo 實現(xiàn)熱部署的原理; Redis 熱 Key 如何解決?只回答了打散這一種方案 Redis 的過期刪除策略是什么? Spring 如何同時注入多態(tài) Bean?提出了通過工廠獲取多態(tài)實例的方案,面試官說可以集合注入;
二面
群面,一共 5 個候選者一起參加,每人一兩個問題。
問項目,以及設計如何優(yōu)化? 是否帶過團隊?如何幫助他們?
那面經(jīng)就分享這些了,有一些公司的面經(jīng)沒有及時記錄(京東、趣聯(lián)網(wǎng)絡科技、中興、民生科技、BYD 等),也記不清了,反正每一家都大差不差,對于八股文的復習大家可以看開源的 JavaGuide,基本上都涉及了。
然后就是項目方面,大家一定要梳理明白你簡歷上的項目,因為稍微正規(guī)一點的大廠面試官,面試時注意力都是很集中的,而且思維也能跟上,你講的項目時的每一句話他都會思考后給出問題,跟你深入討論。
而且建議你的項目盡量復雜一些,有難度、有挑戰(zhàn)一些,這樣才有深入討論交流的話題,不要太老實,就寫自己平時增刪改查之類的業(yè)務功能。就算項目不是你一個人做的,但是你了解同事是怎么做的,遇到了哪些問題,如何思考解決的,這樣對你個人來說也是經(jīng)驗和成長。
那今天就分享這么多了,至于回西安后是啥情況,會不會后悔,還是等后面回去了再跟大家分享,起碼目前是滿懷期待,回去后有家人、有朋友,還是更熟悉一些,也打算工作之余的周末帶著家人去周邊逛一逛,然后可以時常吃到自己喜歡滴美食,確實很期待呢。我小時候還愛釣魚,回去感覺也可以安排上了,哈哈 ??~
由于問題太多,我這里就不貼參考答案了,上面大部分面試題的參考答案你可以在下面 3 個資料中找到:
Java 面試題&面經(jīng)匯總 《Java 面試指北》 JavaGuide 在線閱讀網(wǎng)站:https://javaguide.cn
2022 面經(jīng)匯總 :
順利找到工作了! 4 年經(jīng)驗,去面了波高級 Java 工程師 7 年經(jīng)驗社招終于上岸 Java 開發(fā)! 2022 金蝶 Java 四面面經(jīng)(已 OC) 大專非科班上岸銀行外包,很開心! 騰訊云 Java 工程師一面 + 被撈一面 + 二面面經(jīng) 字節(jié)實習三面掛了。。。 2022 年京東、源創(chuàng)科技、佳創(chuàng)視訊跳槽面試經(jīng)歷 上岸騰訊 PCG 和阿里云! 阿里 23 屆 Java 研發(fā)實習一面涼經(jīng) 上岸美團、華為、字節(jié)! 中小廠(五八、中通、安碩、浩鯨...) Java 后端面經(jīng)
·········· END ··············
歡迎加入我的知識星球獲取更多面試干貨,《Java 面試指北》持續(xù)更新完善中!

近期文章精選 :
走近作者 :
