記一次京東Java研發(fā)崗社招面試(面試經(jīng)歷+真題總結(jié)+經(jīng)驗(yàn)分享)

本篇先以日歷形式回顧春招之路,方便各位參考某廠的處理進(jìn)度;然后是總結(jié)歸納春招Java面試題庫;最后做個(gè)總結(jié)還有展望,開始新的征程~
- 面試經(jīng)歷
- 京東面試真題
- 面試經(jīng)驗(yàn)分享
1.面試經(jīng)歷
2018年的冬季特別的冷,無疑是程序員的寒冬,我也是年底裁員大潮裁下來的一名,(整個(gè)業(yè)務(wù)線都裁了 難受中~)但臨近年底了失業(yè)回家也不太好所以有投了幾份簡歷,其中投京東的一份,京東Java崗要求。
任職要求:
- 計(jì)算機(jī)相關(guān)專業(yè)本科以上學(xué)歷,邏輯思維能力強(qiáng),有很強(qiáng)的責(zé)任心和主動(dòng)性;
- 3年以上J2EE開發(fā)經(jīng)驗(yàn),有互聯(lián)網(wǎng)開發(fā)經(jīng)驗(yàn),JAVA基礎(chǔ)扎實(shí),熟練運(yùn)用設(shè)計(jì)模式;
- 熟練掌握Spring、Struts2、Ibatis等常用框架,了解機(jī)制;
- 熟悉分布式開發(fā),熟悉常用SOA框架、多線程、網(wǎng)絡(luò)編程等;
- 熟悉常用數(shù)據(jù)庫及優(yōu)化,熟悉常用緩存、NoSql技術(shù);
- 熟悉Zookeeper、MQ等組件;
- 有高并發(fā)、大數(shù)據(jù)量系統(tǒng)開發(fā)及優(yōu)化經(jīng)驗(yàn)者優(yōu)先;
- 有互聯(lián)網(wǎng)金融尤其是保險(xiǎn)業(yè)務(wù)開發(fā)經(jīng)驗(yàn)者優(yōu)先。
2.京東面試真題
一面(主要是基礎(chǔ)面)
- 自我介紹,主要問了做了什么和擅長什么
- @Autowired的實(shí)現(xiàn)原理
- Bean的默認(rèn)作用范圍是什么?其他的作用范圍?
- 索引是什么概念有什么作用?
- MySQL里主要有哪些索引結(jié)構(gòu)?哈希索引和B+樹索引比較?
- 說說Java線程池的原理?線程池有哪些?線程池工廠有哪些線程池類型,及其線程池參數(shù)是什么?
- hashmap原理,處理哈希沖突用的哪種方法?
- BIO、NIO、AIO的區(qū)別和聯(lián)系?
- jvm內(nèi)存模型jmm 知道的全講講
- 講講Java GC機(jī)制?
- Java怎么進(jìn)行垃圾回收的?什么對(duì)象會(huì)進(jìn)老年代?
- 垃圾回收算法有哪些?為什么新生代使用復(fù)制算法?
- HashMap的時(shí)間復(fù)雜度?HashMap中Hash沖突是怎么解決的?Java8中的1. HashMap有什么變化?
- 紅黑樹需要比較大小才能進(jìn)行插入,是依據(jù)什么進(jìn)行比較的?其他Hash沖突解決方式?
- hash和B+樹的區(qū)別?分別應(yīng)用于什么場景?哪個(gè)比較好?
二面(數(shù)據(jù)庫問的比較多)
- 自我介紹
- 為什么MyISAM查詢性能好?
- 說說事務(wù)特性(ACID)?
- mysql數(shù)據(jù)庫默認(rèn)存儲(chǔ)引擎,有什么優(yōu)點(diǎn)
- MySQL的事務(wù)隔離級(jí)別,分別解決什么問題。
- SQL慢查詢的常見優(yōu)化步驟是什么?
- 說下樂觀鎖,悲觀鎖(select for update),并寫出sql實(shí)現(xiàn)?
- 講講TCP協(xié)議的三次握手和四次揮手過程?
- 用到過哪些rpc框架?
- Java web過濾器的生命周期?
三面(綜合面主要分布式及緩存)
- 自我介紹,講下項(xiàng)目!
- 加鎖有什么機(jī)制?
- 數(shù)據(jù)庫水平切分,垂直切分的設(shè)計(jì)思路和切分順序
- Redis如何解決key沖突?
- 如何保證數(shù)據(jù)庫與redis緩存一致的
- 項(xiàng)目中消息隊(duì)列怎么用的?使用哪些具體業(yè)務(wù)場景?
- JVM相關(guān)的分析工具有使用過哪些?具體的性能調(diào)優(yōu)步驟嗎?
- MySQL的慢sql優(yōu)化一般如何來做?除此外還有什么方法優(yōu)化?
- 線上的服務(wù)器監(jiān)控指標(biāo),你認(rèn)為哪些指標(biāo)是最需要關(guān)注的?為什么?
- soa和微服務(wù)的區(qū)別?
- 單機(jī)系統(tǒng)演變?yōu)榉植际较到y(tǒng),會(huì)涉及到哪些技術(shù)的調(diào)整?請(qǐng)從前面負(fù)載到后端詳細(xì)描述。
- 設(shè)計(jì)一個(gè)秒殺系統(tǒng)?
3.面試經(jīng)驗(yàn)總結(jié)以及學(xué)習(xí)路線分享:
面試經(jīng)驗(yàn)總結(jié):
- 面試盡量提前到,能早點(diǎn)面試,面試官也更愿意給你通過(就像中國好聲音一樣,一開始都是瘋狂轉(zhuǎn)身)。
- 面試時(shí)調(diào)動(dòng)你的幽默細(xì)胞,盡量把面試氣氛調(diào)得愉快一點(diǎn),這樣面試官能更深的記住你。
- 說自己優(yōu)點(diǎn)的時(shí)候一定輔以證據(jù),不然面試官只會(huì)當(dāng)作耳邊風(fēng)
- 不會(huì)的問題不要強(qiáng)答,小心有坑,可以這樣說:“不好意思這個(gè)問題我不會(huì),但是如果讓我來設(shè)計(jì)我會(huì).......”
- 面試其實(shí)是一個(gè)雙向選擇,面試官在評(píng)估你的表現(xiàn),同時(shí)由于面試官也代表公司,他的素質(zhì)及提的問題也是你應(yīng)該評(píng)估的方面,所以不要緊張。
- 使用幕布,在每次面試前將自己總結(jié)的知識(shí)過一遍。我幕布上寫了幾萬字的筆記,每次面試都拿出來看一遍,所以面試問到的基礎(chǔ)我基本都能應(yīng)答入流。
如何準(zhǔn)備
首先要聲明的是,最好的“準(zhǔn)備”方式一定是平時(shí)多積累、遇到問題不要逃避或者討巧、深入去思考并解決,在解決一個(gè)個(gè)問題的過程中積累解決問題的能力,形成自己的知識(shí)體系。所以這里說的如何準(zhǔn)備不是說臨時(shí)抱佛腳,而是如何能通過提前準(zhǔn)備把自己平時(shí)的積累展現(xiàn)出來,不因?yàn)榕R場的表現(xiàn)影響面試官對(duì)你的判斷。
- 針對(duì)以上列的知識(shí)點(diǎn)思考答案甚至擴(kuò)展,如果能知道大部分,深入一部分就很好,這個(gè)過程主要是整理自己的知識(shí)體系
- 回憶整理簡歷和過往項(xiàng)目中的”難點(diǎn)“、”亮點(diǎn)“,因?yàn)檫@些是用來區(qū)分候選人很重要的點(diǎn),合格的面試官一定會(huì)問類似于”你在項(xiàng)目中經(jīng)歷的最大的技術(shù)難點(diǎn)是什么?“,整理一下思路,不至于在面試時(shí)候因?yàn)闀r(shí)間久遠(yuǎn)而回憶不起來細(xì)節(jié)影響面試效果。
- 溝通過程中做到有理有據(jù),不要過于自大,也無需刻意迎合面試官。溝通的本質(zhì)是信息透明化,工作中也許我們無法做到完全客觀公正,但是在技術(shù)問題上堅(jiān)持自己的客觀和原則是我認(rèn)為技術(shù)人應(yīng)該堅(jiān)持的品格,我這里說的堅(jiān)持不是一根筋的固執(zhí)已見,而是根據(jù)共同認(rèn)可的事實(shí)進(jìn)行邏輯推斷得出的觀點(diǎn)。長遠(yuǎn)來看這種品格會(huì)帶給你足夠的技術(shù)影響力和回報(bào)。
學(xué)習(xí)路線:
大部分職業(yè)都是需要有成長體系,才能讓人有奮發(fā)向上的追求。架構(gòu)師就是程序員這個(gè)群體成長道路上往往會(huì)出現(xiàn)的一個(gè)重要節(jié)點(diǎn)。每個(gè)好架構(gòu)師都是一位出色的程序員。然而好的程序員進(jìn)階為架構(gòu)師,并不容易。
對(duì)于有一定后臺(tái)研發(fā)經(jīng)驗(yàn)(尤其是5年以上經(jīng)驗(yàn))的程序員們來說,成為架構(gòu)師的渴望更加強(qiáng)烈,因此會(huì)花更多時(shí)間學(xué)習(xí),提升架構(gòu)技能,但常常由于客觀條件限制,面臨著不少難點(diǎn):
接觸不到一線實(shí)戰(zhàn)架構(gòu)技術(shù),尤其是有一定的技術(shù)深度和難度架構(gòu)技術(shù)。
不了解核心技術(shù)點(diǎn)所處的具體背景是什么?
同時(shí),又迫切需要掌握:業(yè)界目前主流干貨技術(shù) + 前沿技術(shù),互聯(lián)網(wǎng)核心技術(shù)硬技能 + 核心軟技能,掌握架構(gòu)技術(shù)的本質(zhì),知其然更知其所以然,架構(gòu)筑基篇,深入內(nèi)核,直擊故障,拒絕蒙圈。
所以你需要一個(gè)明確的學(xué)習(xí)路線----這是一個(gè)典型的程序員的成長過程:
使用Java---->深入理解Java積累經(jīng)驗(yàn)------>獨(dú)立設(shè)計(jì)分析能力------>獨(dú)當(dāng)一面的多面手!
因此,你必須學(xué)習(xí):(文末附免費(fèi)學(xué)習(xí)資料領(lǐng)取)
一、開源框架解析
程序員每天都和代碼打交道。經(jīng)過數(shù)年的基礎(chǔ)教育和職業(yè)培訓(xùn),大部分程序員都會(huì)「寫」代碼,或者至少會(huì)抄代碼和改代碼。但是,會(huì)讀代碼的并不在多數(shù),會(huì)讀代碼又真正讀懂一些大項(xiàng)目的源碼的,少之又少。這也造成了很多錯(cuò)誤看源碼的方式。
那要如何正確的分析源碼呢? 我們的目標(biāo)應(yīng)該放在最常用的框架上面:
二、架構(gòu)基礎(chǔ)
從架構(gòu)設(shè)計(jì),到應(yīng)用層調(diào)優(yōu),再深入了解底層原理,扎實(shí)的Java基本功才能讓自己變?yōu)閽叩厣裆簝?nèi)存模型,并發(fā)模式,線程模型,鎖細(xì)節(jié)等等
三、高性能架構(gòu)
我們不僅僅對(duì)項(xiàng)目要運(yùn)籌帷幄,還要能解決一切性能問題。只有深入學(xué)習(xí)JVM底層原理,Mysql底層優(yōu)化以及Tomcat調(diào)優(yōu),才能達(dá)到知其然,知其所以然的效果。除了性能優(yōu)化之外,也能提供通用的常見思路以及方案選型的考慮點(diǎn),幫助大家培養(yǎng)在方案選型時(shí)的意識(shí)、思維以及做各種權(quán)衡的能力。
四、微服務(wù)架構(gòu)
關(guān)于微服務(wù)架構(gòu)的取舍
在合適的項(xiàng)目,合適的團(tuán)隊(duì),采用微服務(wù)架構(gòu)收益會(huì)大于成本。微服務(wù)架構(gòu)有很多吸引人的地方,但在擁抱微服務(wù)之前,也需要認(rèn)清它所帶來的挑戰(zhàn)。需要避免為了“微服務(wù)”而“微服務(wù)”。微服務(wù)架構(gòu)引入策略 – 對(duì)傳統(tǒng)企業(yè)而言,開始時(shí)可以考慮引入部分合適的微服務(wù)架構(gòu)原則對(duì)已有系統(tǒng)進(jìn)行改造或新建微服務(wù)應(yīng)用,逐步探索及積累微服務(wù)架構(gòu)經(jīng)驗(yàn),而非全盤實(shí)施微服務(wù)架構(gòu)。
五、團(tuán)隊(duì)協(xié)作
開發(fā)工具工程化
通過一小段描述信息來管理項(xiàng)目的構(gòu)建,報(bào)告和文檔的軟件項(xiàng)目管理工具。程序員的戰(zhàn)斗,往往不是一個(gè)人的戰(zhàn)斗,我們?nèi)绾卧谝粋€(gè)平臺(tái)下高效的去重,進(jìn)行代碼review,對(duì)功能進(jìn)行調(diào)整,debug,做到在統(tǒng)一的規(guī)劃下步步為營,混亂的堆代碼的過程中找到自己的記錄。這一切都依賴于有效的工具。
六、B2C項(xiàng)目實(shí)戰(zhàn)
項(xiàng)目實(shí)戰(zhàn)
要想立足于互聯(lián)網(wǎng)公司,且能在互聯(lián)網(wǎng)浪潮中不被淹沒,對(duì)于項(xiàng)目的開發(fā)實(shí)戰(zhàn)演練是不必可少的技能,也是對(duì)自身能力的一個(gè)衡量,有多少的量對(duì)等于獲得多少的回報(bào)??此坪唵蔚囊粋€(gè)項(xiàng)目需求圖譜,其中的底層原理,實(shí)現(xiàn)原理又能知道多少?你搭建一個(gè)完整的B2C項(xiàng)目平臺(tái)到底需要多少知識(shí)?這一切都是需要我們考量的。
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
- 這篇文章主要介紹了程序員面試的幾個(gè)小技巧,在平時(shí)面試的時(shí)候,除了實(shí)打?qū)嵉募寄苓€需要更多的技巧,雙管齊下才能贏得更大的勝算,技能方面就不多說了,下面來分享幾個(gè)面試2023-04-23
- 面試中,問鎖主要是兩方面:鎖的日常使用場景 + 鎖原理,鎖的日常使用場景主要考察對(duì)鎖 API 的使用熟練度,看看你是否真的使用過這些 API,而不是紙上談兵,鎖原理主要就是2022-05-19
- 這篇文章主要介紹了Mybatis常見面試題詳細(xì)總結(jié),通過總結(jié)列舉大量的mybatis面試常見題目供給大家參考,希望對(duì)大家有所幫助2021-08-24
2020Java后端開發(fā)面試題總結(jié)(春招+秋招+社招)
這篇文章主要介紹了2020Java后端開發(fā)面試題總結(jié)(春招+秋招+社招),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2021-02-18- 這篇文章主要介紹了MySQL數(shù)據(jù)庫選擇題小結(jié),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2021-02-07
- 這篇文章主要介紹了30道有趣的JVM面試題(小結(jié)),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2020-11-26
- 這篇文章主要介紹了Python面試題爬蟲篇小結(jié)(附答案),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2020-10-28
- 這篇文章主要介紹了還不理解B樹和B+樹,那就看看這篇文章吧,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一2020-09-10
Java面試通關(guān)要點(diǎn)匯總(備戰(zhàn)秋招)
這篇文章主要介紹了Java面試通關(guān)要點(diǎn)匯總(備戰(zhàn)秋招),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2020-09-08- 這篇文章主要介紹了10道JVM常見面試題解析(附答案),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)2020-09-04