一年工做經驗跳槽京東Java開發工程師社招經歷

前期準備:

肯定好本身目標後,須要針對目標制定攻堅計劃,確保順利拿下城池。java


看一眼面試京東java開發工程師要求mysql

職位描述:web

工做職責:面試

一、獨立完成中大型項目的系統分析、設計,並可以完成核心代碼的編寫,確保技術方案可以按計劃要求,高質量的完成;redis

二、具備必定的技術架構思惟,確保設計的技術方案、開發的代碼有較高性能、質量保障、擴展性、前瞻性;算法

三、對技術有較強的鑽研及學習精神,可以深刻了解開源技術、現有系統技術等相關技術原理,出現問題時可以經過較強的技術手段較好的解決問題;sql

四、針對新人、普通開發人員進行有效輔導,幫助其快速成長。docker


任職要求:數據庫

一、大型互聯網公司3年以上核心架構經驗,熟悉互聯網快速迭代開發的模式,能化繁爲簡;後端

二、經常使用技術框架如Spring,Ibatis,Netty等有源碼級研究者優先;

三、熟悉分佈式系統的設計和應用,熟悉分佈式、緩存、消息等機制;能對分佈式經常使用技術進行合理應用,解決問題;

四、精通JVM底層原理,熟悉Tomcat運行機制,有源碼經驗者優先,性能調優掌握多線程及高性能的設計與編碼及性能調優;有高併發應用開發經驗;

五、有大數據(hadoop,hive,sqoop,hbase,spark,solr)相關經驗者優先;

六、學習能力強,適應能力好;具有耐心、細心的品質;

七、對互聯網應用開發的最新潮流有關注,喜歡去看及嘗試最新的技術,追求編寫優雅的代碼,從技術趨勢和思路上能影響技術團隊

八、有財務、稅務、財資等相關業務系統開發經驗者優先


綜上:須要有中大型項目經驗,三年以上的核心架構經驗,最主要的是須要精通Jvm底層原理等Java底層原理源碼的理解與使用,恩,精通 精通 是精通


計劃:

Java底層基礎

準備跳槽時已經從別人社招面經知道了每輪技術面都會問及算法,JVM等等。這一塊練習的比較少,像JVM這種就更是接觸的不多,所以系統複習的時候這塊花費的時間表比較多,因此天天的LeetCode是必不可少的,想在短短几周內刷完基本是不可能的,所以我主要按照類型去刷,還有就是須要一些視頻輔助,講Jvm的視頻在各大視頻網站不在少數,但真的能講的讓人通俗易懂的沒發現幾個,我也是找了很久才發現一位UP主發視頻,講的很不錯(具體是誰就很少說了),聽了兩堂課一會兒感受全回來了,感受在對JVM的理解上獲得昇華,


組件、容器、數據庫

複習的都是一些比較基礎常見的組件和後端架構設計,像Mysql、Oracle、redis、docker、zookeeper、Tomcat等等。數據庫的話主要複習分庫分表、sql優化、讀寫分離、鎖另外就是Redis的一些使用場景,微服務、分佈式架構就準備CAP理論、BASE理論、限流、熔斷、一致性問題等等


必選項:項目(重中之重)

.沒有參加過開源項目,工做中的項目也平平凡凡,拿的出手的少之又少,因此說必須找亮點,揚長避短

好比我在項目中用過Quartz 、消息隊列、用docker部署過項目熟悉使用docker,能夠向面試官展現出本身具備必定的架構能力。

再好比你修改過一條sql從原來要跑30s到如今的10秒

而後就是能夠說一些項目中比較複雜的模塊,能夠不用是你作的,可是必定得搞清楚模塊的功能快並能能夠熟練度講出來


京東一面:

0.項目介紹

1. ArrayList,Vector,LinkedList 的存儲性能和特性?

2.forward 和redirect 的區別?

3. Java 反射機制的做用

4. Servlet 建立過程及生命週期Servlet 在容器中運行時, 其實例的建立及銷燬等是由容器進行控制。

5. 用 sql 語句分頁(mysql/oracle)

6.J2EE J 是什麼意思? 2 是什麼意思 EE 是什麼意思? Struts 的攔截器你是怎麼作的,

是獨立開發的,可以獨立開發的到。而後問有哪幾種攔截?

7. 簡單介紹下 java ? Spring 的AOP,IOC 的講述對 struts2 的瞭解, 1,2 的比較 xml的瞭解 J2ee 的webserviced 的協議?

8. 如何釋放過分使用的 undo 表空間

9. 數據庫裏面遊標,索引是怎麼用的? 在 oracle 數據庫中,用get 和load 方法這 2個方法來查沒有的數據那麼分別會反饋什麼樣的結果?

10. 寫一段把本地文件 formfile 拷貝到本地文件tofile 的程序


二面:

1. 多線程、同步實現方法?

2. 適配器模式與橋樑模式的區別

3. 開發中都用到了哪些設計模式 ?用在什麼場合?

4. 棧幀中的動態連接中存儲的是什麼?還有其餘思路麼?

5. 堆爲何要分紅新生代、老年代?比例爲何是1:2?

6. This指針是什麼時候賦值的?

7. 虛擬機棧須要GC麼?爲何?

8. 本地方法棧必定存在麼?若是不是什麼時候存在?

9. Jvm是用C++實現的,C++生成的對象默認是在navite method,怎麼放到Jvm堆上的

10. MySQL事務的四個隔離級別? 四個級別的區別,而後說了每一個級別可能產生的問題


三面:

1. 問項目

2. 虛擬機棧、本地方法棧是同一個棧麼?若是不是爲何要這麼設計?

3. –Xss、-X:ThreadStackSize、-XX:VMThreadStackSIze的區別?

4. –XX:NewRatio=4是什麼意思?新生代佔堆內存的比例是多少?

5. JVM加載class 文件原理?

6. Tomcat 的class 加載的優先順序?

7. J2EE訪問速度慢,怎麼樣優化?

8. 線程共享區域隨虛擬機的啓動/關閉而建立/銷燬?

9. JVM運行時內存?


總結:

其實大廠面試也沒有什麼不一樣,一樣的題目只是問的比普通公司更加的深刻,每每一個問題能夠延伸到十幾個問題,一層一層全是坑,可是有針對性的去複習仍是能達到事半功倍的效果,想進大廠必須把底層學好並且還要學精能觸類旁通,這樣纔會讓面試官另眼相看。

相關文章
相關標籤/搜索