2019年京東Java研發崗社招面經(面試經歷+真題總結+經驗分享)!

本篇先以日曆形式回顧秋招之路,方便各位參考某廠的處理進度;而後是總結概括春秋招Java面試題庫;最後作個總結還有展望,開始新的征程~mysql

面試經歷
京東面試真題
面試經驗分享
1.面試經歷程序員

2018年的冬季特別的冷,無疑是程序員的寒冬,我也是年末裁人大潮裁下來的一名,(整個業務線都裁了 難受中~)但臨近年末了失業回家也不太好因此有投了幾份簡歷,其中投京東的一份,京東Java崗要求。web

崗位描述:
一、參與京東金融保險核心業務系統底層架構設計及重構工做;
二、持續優化高併發場景下系統性能;
三、與保險公司接口對接及聯調;
四、保險產品智能推薦系統開發;
五、對接財務流程相關係統。
任職要求:
一、計算機相關專業本科以上學歷,邏輯思惟能力強,有很強的責任心和主動性;
二、3年以上J2EE開發經驗,有互聯網開發經驗,JAVA基礎紮實,熟練運用設計模式;
三、熟練掌握Spring、Struts二、Ibatis等經常使用框架,瞭解機制;
四、熟悉分佈式開發,熟悉經常使用SOA框架、多線程、網絡編程等;
五、熟悉經常使用數據庫及優化,熟悉經常使用緩存、NoSql技術;
六、熟悉Zookeeper、MQ等組件;
七、有高併發、大數據量系統開發及優化經驗者優先;
八、有互聯網金融尤爲是保險業務開發經驗者優先。
 面試

2.京東面試真題redis

一面(主要是基礎面)算法

自我介紹,主要問了作了什麼和擅長什麼
@Autowired的實現原理
Bean的默認做用範圍是什麼?其餘的做用範圍?
索引是什麼概念有什麼做用?
MySQL裏主要有哪些索引結構?哈希索引和B+樹索引比較?
說說Java線程池的原理?線程池有哪些?線程池工廠有哪些線程池類型,及其線程池參數是什麼?
hashmap原理,處理哈希衝突用的哪一種方法?
BIO、NIO、AIO的區別和聯繫?
jvm內存模型jmm 知道的全講講
講講Java GC機制?
Java怎麼進行垃圾回收的?什麼對象會進老年代?
垃圾回收算法有哪些?爲何新生代使用複製算法?
HashMap的時間複雜度?HashMap中Hash衝突是怎麼解決的?Java8中的HashMap有什麼變化?
紅黑樹須要比較大小才能進行插入,是依據什麼進行比較的?其餘Hash衝突解決方式?
hash和B+樹的區別?分別應用於什麼場景?哪一個比較好?
二面(數據庫問的比較多)sql

自我介紹
爲何MyISAM查詢性能好?
說說事務特性(ACID)?
mysql數據庫默認存儲引擎,有什麼優勢
MySQL的事務隔離級別,分別解決什麼問題。
SQL慢查詢的常見優化步驟是什麼?
說下樂觀鎖,悲觀鎖(select for update),並寫出sql實現?
講講TCP協議的三次握手和四次揮手過程?
用到過哪些rpc框架?
Java web過濾器的生命週期?
三面(綜合面主要分佈式及緩存)數據庫

自我介紹,講下項目!
加鎖有什麼機制?
數據庫水平切分,垂直切分的設計思路和切分順序
Redis如何解決key衝突?
如何保證數據庫與redis緩存一致的
項目中消息隊列怎麼用的?使用哪些具體業務場景?
JVM相關的分析工具備使用過哪些?具體的性能調優步驟嗎?
MySQL的慢sql優化通常如何來作?除此外還有什麼方法優化?
線上的服務器監控指標,你認爲哪些指標是最須要關注的?爲何?
soa和微服務的區別?
單機系統演變爲分佈式系統,會涉及到哪些技術的調整?請從前面負載到後端詳細描述。
設計一個秒殺系統?
3.面試經驗總結以及學習路線分享:編程

經驗總結:後端

面試儘可能提早到,能早點面試,面試官也更願意給你經過(就像中國好聲音同樣,一開始都是瘋狂轉身)。
面試時調動你的幽默細胞,儘可能把面試氣氛調得愉快一點,這樣面試官能更深的記住你。
說本身優勢的時候必定輔以證據,否則面試官只會看成耳邊風
不會的問題不要強答,當心有坑,能夠這樣說:「很差意思這個問題我不會,可是若是讓我來設計我會.......」
面試實際上是一個雙向選擇,面試官在評估你的表現,同時因爲面試官也表明公司,他的素質及提的問題也是你應該評估的方面,因此沒關係張。
使用幕布,在每次面試前將本身總結的知識過一遍。我幕布上寫了幾萬字的筆記,每次面試都拿出來看一遍,因此面試問到的基礎我基本都能應答入流。
學習路線:

大部分職業都是須要有成長體系,才能讓人有奮發向上的追求。架構師就是程序員這個羣體成長道路上每每會出現的一個重要節點。每一個好架構師都是一位出色的程序員。然而好的程序員進階爲架構師,並不容易。

對於有必定後臺研發經驗(尤爲是5年以上經驗)的程序員們來講,成爲架構師的渴望更增強烈,所以會花更多時間學習,提高架構技能,但經常因爲客觀條件限制,面臨着很多難點:
接觸不到一線實戰架構技術,尤爲是有必定的技術深度和難度架構技術。
不瞭解核心技術點所處的具體背景是什麼?
同時,又迫切須要掌握:業界目前主流乾貨技術 + 前沿技術,互聯網核心技術硬技能 + 核心軟技能,掌握架構技術的本質,知其然更知其因此然,架構築基篇,深刻內核,直擊故障,拒絕蒙圈。
因此你須要一個明確的學習路線----這是一個典型的程序員的成長過程:

使用Java---->深刻理解Java積累經驗------>獨立設計分析能力------>獨當一面的多面手!

所以,必須學習:

1、開源框架解析

程序員天天都和代碼打交道。通過數年的基礎教育和職業培訓,大部分程序員都會「寫」代碼,或者至少會抄代碼和改代碼。可是,會讀代碼的並不在多數,會讀代碼又真正讀懂一些大項目的源碼的,少之又少。這也形成了不少錯誤看源碼的方式。

那要如何正確的分析源碼呢? 咱們的目標應該放在最經常使用的框架上面:

 

 

2、架構師築基

從架構設計,到應用層調優,再深刻了解底層原理,紮實的Java基本功才能讓本身變爲掃地神僧:內存模型,併發模式,線程模型,鎖細節等等

 

3、高性能架構

咱們不只僅對項目要指揮若定,還要能解決一切性能問題。只有深刻學習JVM底層原理,Mysql底層優化以及Tomcat調優,才能達到知其然,知其因此然的效果。除了性能優化以外,也能提供通用的常見思路以及方案選型的考慮點,幫助你們培養在方案選型時的意識、思惟以及作各類權衡的能力。

 

4、微服務架構

關於微服務架構的取捨

在合適的項目,合適的團隊,採用微服務架構收益會大於成本。微服務架構有不少吸引人的地方,但在擁抱微服務以前,也須要認清它所帶來的挑戰。須要避免爲了「微服務」而「微服務」。微服務架構引入策略 – 對傳統企業而言,開始時能夠考慮引入部分合適的微服務架構原則對已有系統進行改造或新建微服務應用,逐步探索及積累微服務架構經驗,而非全盤實施微服務架構。

 

5、團隊協做

開發工具工程化

經過一小段描述信息來管理項目的構建,報告和文檔的軟件項目管理工具。程序員的戰鬥,每每不是一我的的戰鬥,咱們如何在一個平臺下高效的去重,進行代碼review,對功能進行調整,debug,作到在統一的規劃下步步爲營,混亂的堆代碼的過程當中找到本身的記錄。這一切都依賴於有效的工具。

 

6、B2C項目實戰

項目實戰

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

 

看完我分享的這些學習路線你是否會以爲本身的技術有待增強,思惟不該該只停留在表面呢。

固然我這裏也爲想提高本身技術的同窗準備了一份架構進階視頻資料和上面的高清思惟導圖。

 

資料獲取方式:請加JAVA架構技術交流羣:714827309點擊連接加入羣聊【JAVA高級架構技術交流】:https://jq.qq.com/?_wv=1027&k=51OhGuo--------------------- 做者:大型互聯網架構技術v 來源:CSDN 原文:https://blog.csdn.net/qq_41790443/article/details/88712353 版權聲明:本文爲博主原創文章,轉載請附上博文連接!

相關文章
相關標籤/搜索