這篇文章主要介紹我朋友被裁員,被逼無奈下去面了一次京東Java研發崗,沒想到拿到offer了的相關資料,我在這整理了一下他本次面試的經歷、真題等等,現在分享給大家,
背景
?面試經歷
?京東面試真題
?面試經驗分享
這里把重要的知識點都寫出來了,不管是核心知識點也好還是面試題也好,讓大家對知識框架有個基本輪廓
同時也整理了283頁的PDF檔案,也是Java的核心知識點,
需要的朋友可以,點擊這里領取!!!,暗號是:CSDN
1.面試經歷
2020年無疑是程式員的寒冬,我也是裁員大潮裁下來的一名,(整個業務線都裁了 難受中~)但臨近年底了失業回家也不太好所以有投了幾份簡歷,其中投京東的一份,京東Java崗要求,
任職要求:
?計算機相關專業本科以上學歷,邏輯思維能力強,有很強的責任心和主動性;
?3年以上J2EE開發經驗,有互聯網開發經驗,JAVA基礎扎實,熟練運用設計模式;
?熟練掌握Spring、Struts2、Ibatis等常用框架,了解機制;
?熟悉分布式開發,熟悉常用SOA框架、多執行緒、網路編程等;
?熟悉常用資料庫及優化,熟悉常用快取、NoSql技術;
?熟悉Zookeeper、MQ等組件;
?有高并發、大資料量系統開發及優化經驗者優先;
?有互聯網金融尤其是保險業務開發經驗者優先,
2.京東面試真題
一面(主要是基礎面)
?自我介紹,主要問了做了什么和擅長什么
?@Autowired的實作原理
?Bean的默認作用范圍是什么?其他的作用范圍?
?索引是什么概念有什么作用?
?MySQL里主要有哪些索引結構?哈希索引和B+樹索引比較?
?說說Java執行緒池的原理?執行緒池有哪些?執行緒池工廠有哪些執行緒池型別,及其執行緒池引數是什么?
?hashmap原理,處理哈希沖突用的哪種方法?
?BIO、NIO、AIO的區別和聯系?
?jvm記憶體模型jmm 知道的全講講
?講講Java GC機制?
?Java怎么進行垃圾回收的?什么物件會進老年代?
?垃圾回收演算法有哪些?為什么新生代使用復制演算法?
?HashMap的時間復雜度?HashMap中Hash沖突是怎么解決的?Java8中的1. HashMap有什么變化?
?紅黑樹需要比較大小才能進行插入,是依據什么進行比較的?其他Hash沖突解決方式?
?hash和B+樹的區別?分別應用于什么場景?哪個比較好?
二面(資料庫問的比較多)
?自我介紹
?為什么MyISAM查詢性能好?
?說說事務特性(ACID)?
?mysql資料庫默認存盤引擎,有什么優點
?MySQL的事務隔離級別,分別解決什么問題,
?SQL慢查詢的常見優化步驟是什么?
?說下樂觀鎖,悲觀鎖(select for update),并寫出sql實作?
?講講TCP協議的三次握手和四次揮手程序?
?用到過哪些rpc框架?
?Java web過濾器的生命周期?
三面(綜合面主要分布式及快取)
?自我介紹,講下專案!
?加鎖有什么機制?
?資料庫水平切分,垂直切分的設計思路和切分順序
?Redis如何解決key沖突?
?如何保證資料庫與redis快取一致的
?專案中訊息佇列怎么用的?使用哪些具體業務場景?
?JVM相關的分析工具有使用過哪些?具體的性能調優步驟嗎?
?MySQL的慢sql優化一般如何來做?除此外還有什么方法優化?
?線上的服務器監控指標,你認為哪些指標是最需要關注的?為什么?
?soa和微服務的區別?
?單機系統演變為分布式系統,會涉及到哪些技術的調整?請從前面負載到后端詳細描述,
?設計一個秒殺系統?
3.面試經驗總結以及學習路線分享:
面試經驗總結:
?面試盡量提前到,能早點面試,面試官也更愿意給你通過(就像中國好聲音一樣,一開始都是瘋狂轉身),
?面試時調動你的幽默細胞,盡量把面試氣氛調得愉快一點,這樣面試官能更深的記住你,
?說自己優點的時候一定輔以證據,不然面試官只會當作耳邊風
?不會的問題不要強答,小心有坑,可以這樣說:“不好意思這個問題我不會,但是如果讓我來設計我會…”
?面試其實是一個雙向選擇,面試官在評估你的表現,同時由于面試官也代表公司,他的素質及提的問題也是你應該評估的方面,所以不要緊張,
?使用幕布,在每次面試前將自己總結的知識過一遍,我幕布上寫了幾萬字的筆記,每次面試都拿出來看一遍,所以面試問到的基礎我基本都能應答入流,
如何準備
首先要宣告的是,最好的“準備”方式一定是平時多積累、遇到問題不要逃避或者討巧、深入去思考并解決,在解決一個個問題的程序中積累解決問題的能力,形成自己的知識體系,所以這里說的如何準備不是說臨時抱佛腳,而是如何能通過提前準備把自己平時的積累展現出來,不因為臨場的表現影響面試官對你的判斷,
?針對以上列的知識點思考答案甚至擴展,如果能知道大部分,深入一部分就很好,這個程序主要是整理自己的知識體系
?回憶整理簡歷和過往專案中的”難點“、”亮點“,因為這些是用來區分候選人很重要的點,合格的面試官一定會問類似于”你在專案中經歷的最大的技術難點是什么?“,整理一下思路,不至于在面試時候因為時間久遠而回憶不起來細節影響面試效果,
?溝通程序中做到有理有據,不要過于自大,也無需刻意迎合面試官,溝通的本質是資訊透明化,作業中也許我們無法做到完全客觀公正,但是在技術問題上堅持自己的客觀和原則是我認為技術人應該堅持的品格,我這里說的堅持不是一根筋的固執已見,而是根據共同認可的事實進行邏輯推斷得出的觀點,長遠來看這種品格會帶給你足夠的技術影響力和回報,
學習路線:
大部分職業都是需要有成長體系,才能讓人有奮發向上的追求,架構師就是程式員這個群體成長道路上往往會出現的一個重要節點,每個好架構師都是一位出色的程式員,然而好的程式員進階為架構師,并不容易,
對于有一定后臺研發經驗(尤其是5年以上經驗)的程式員們來說,成為架構師的渴望更加強烈,因此會花更多時間學習,提升架構技能,但常常由于客觀條件限制,面臨著不少難點:
接觸不到一線實戰架構技術,尤其是有一定的技術深度和難度架構技術,
不了解核心技術點所處的具體背景是什么?
同時,又迫切需要掌握:業界目前主流干貨技術 + 前沿技術,互聯網核心技術硬技能 + 核心軟技能,掌握架構技術的本質,知其然更知其所以然,架構筑基篇,深入內核,直擊故障,拒絕蒙圈,
所以你需要一個明確的學習路線----這是一個典型的程式員的成長程序:
使用Java---->深入理解Java積累經驗------>獨立設計分析能力------>獨當一面的多面手!
因此,你必須學習:(附免費學習資料領取)點擊領取即可:點擊這里!!!暗號CSDN
一、開源框架決議
程式員每天都和代碼打交道,經過數年的基礎教育和職業培訓,大部分程式員都會「寫」代碼,或者至少會抄代碼和改代碼,但是,會讀代碼的并不在多數,會讀代碼又真正讀懂一些大專案的原始碼的,少之又少,這也造成了很多錯誤看原始碼的方式,
那要如何正確的分析原始碼呢? 我們的目標應該放在最常用的框架上面:

二、架構基礎
從架構設計,到應用層調優,再深入了解底層原理,扎實的Java基本功才能讓自己變為掃地神僧:記憶體模型,并發模式,執行緒模型,鎖細節等等

三、高性能架構
我們不僅僅對專案要運籌帷幄,還要能解決一切性能問題,只有深入學習JVM底層原理,Mysql底層優化以及Tomcat調優,才能達到知其然,知其所以然的效果,除了性能優化之外,也能提供通用的常見思路以及方案選型的考慮點,幫助大家培養在方案選型時的意識、思維以及做各種權衡的能力,

四、微服務架構
關于微服務架構的取舍
在合適的專案,合適的團隊,采用微服務架構收益會大于成本,微服務架構有很多吸引人的地方,但在擁抱微服務之前,也需要認清它所帶來的挑戰,需要避免為了“微服務”而“微服務”,微服務架構引入策略 – 對傳統企業而言,開始時可以考慮引入部分合適的微服務架構原則對已有系統進行改造或新建微服務應用,逐步探索及積累微服務架構經驗,而非全盤實施微服務架構,

五、團隊協作
開發工具工程化
通過一小段描述資訊來管理專案的構建,報告和檔案的軟體專案管理工具,程式員的戰斗,往往不是一個人的戰斗,我們如何在一個平臺下高效的去重,進行代碼review,對功能進行調整,debug,做到在統一的規劃下步步為營,混亂的堆代碼的程序中找到自己的記錄,這一切都依賴于有效的工具,

五、團隊協作
開發工具工程化
通過一小段描述資訊來管理專案的構建,報告和檔案的軟體專案管理工具,程式員的戰斗,往往不是一個人的戰斗,我們如何在一個平臺下高效的去重,進行代碼review,對功能進行調整,debug,做到在統一的規劃下步步為營,混亂的堆代碼的程序中找到自己的記錄,這一切都依賴于有效的工具,

六、B2C專案實戰
專案實戰
要想立足于互聯網公司,且能在互聯網浪潮中不被淹沒,對于專案的開發實戰演練是不必可少的技能,也是對自身能力的一個衡量,有多少的量對等于獲得多少的回報,看似簡單的一個專案需求圖譜,其中的底層原理,實作原理又能知道多少?你搭建一個完整的B2C專案平臺到底需要多少知識?這一切都是需要我們考量的,

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/98835.html
標籤:其他
上一篇:985程式員面試快手感慨:比進阿里難100倍!你可能拿了個假offer。
下一篇:Vue嚴格模式
