本想试试看,结果却拿到了京东的Offer
轉(zhuǎn)載自?本想試試看,結(jié)果卻拿到了京東的Offer?
最近,春招已經(jīng)基本接近尾聲了,我找了幾位拿到名企Offer的粉絲,請他們總結(jié)了面試經(jīng)驗,近期會分批的推送給大家。希望給那些正在準備秋招的同學(xué)提供些幫助。
今天給大家分享的面經(jīng)作者通過了2018年的春招,通過了京東的幾輪技術(shù)面試。以下是他總結(jié)的面試經(jīng)驗及準備思路。Hollis只做了簡單的格式修改。希望對你有幫助。
從年后開始正式準備,在春招抱著試一試的念頭,投了京東Java研發(fā)工程師實習(xí),然后意外過了筆試一面和二面,稍微總結(jié)下自己面試的經(jīng)驗和準備,希望能給大家一點幫助
?
面試前我給自己列了一個List,然后分為周計劃和天計劃按照List的清單完成打卡,雖然到目前為止還沒把自己的List全部走一遍,但覺收獲還是蠻大的,如果和我一樣自制力不是很強的同學(xué),也可以和我一樣制定一個List。
學(xué)習(xí)計劃日常任務(wù)
1.?設(shè)計模式?* 1(我是看的《大話設(shè)計模式》,讀起來通俗易懂,實現(xiàn)是C#的,除了委托那塊其他差別其實不是很大,如果有余力的同學(xué)也可以結(jié)合《重構(gòu)·改善既有代碼的設(shè)計》學(xué)習(xí))
2. Effiective Java * 2?(還有一本Practical Java感覺有點舊,我是挑著看的,Effiective Java?也出了第三本,加了很多新的地方,英語好的同學(xué)建議閱讀原版,只不過我水平比較差看的中文版)
3.?集合類源碼*1?(最好是找一段時間系統(tǒng)的學(xué)習(xí)一邊源碼聯(lián)系起來看,看起來比較吃力的同學(xué)可以上網(wǎng)參考一些博客幫助理解,不一定要求細節(jié)面面俱到但是一些關(guān)鍵點要理解,我當時是之前系統(tǒng)的學(xué)了一遍,然后每天就是復(fù)習(xí)一下,防止遺忘)
4.?算法題?* 1?(Leetcode也推出了中文版,或者牛客網(wǎng)也可以,我算法比較薄弱,就挑了一下經(jīng)典的題目刷了下)
5.?基礎(chǔ)知識題若干(當時是在過年期間把牛客網(wǎng)全部Java題過了一邊,后面主要是做復(fù)習(xí)錯題,和一些數(shù)據(jù)庫以及網(wǎng)絡(luò)的選擇題)
?
每周任務(wù)
最好根據(jù)每個人自己的時間來安排,當前也最好去上周review一下自己上一周的復(fù)習(xí)的,然后每周最好都有個主題而不是漫無目的的復(fù)習(xí),我是有記錄一些筆記的習(xí)慣,推薦使用MarkDown,或者直接用印象筆記有道云筆記之類的工具也行
?
復(fù)習(xí)要點
其實我大部分是按照?Hollis?大神的?Java成神之路的基礎(chǔ)篇和部分進階篇來準備的,自己總結(jié)的其實還是Java基礎(chǔ),JVM,網(wǎng)絡(luò),數(shù)據(jù)庫,數(shù)據(jù)結(jié)構(gòu),還有Java的源碼要熟練(真的不是給Hollis打廣告)
如果不是很清楚準備的同學(xué)可以多找?guī)追菝?/span>經(jīng),看看別人的問題,帶入面試場景,可以列出一份自己的弱點清單,然后針對薄弱做復(fù)習(xí)
?
一面是在前一天晚上六點收到短信,讓我第二天十點到上海參加面試,真的沒想到自己能過了筆試,想著自己也沒參加過面試,就來面試下當做積累經(jīng)驗了。
一面我:第一次面試有點緊張
面試官:沒什么我們就隨便聊聊,你先自我介紹一下吧
?
然后是一串自我介紹(自我介紹真的是必考題,建議每個同學(xué)都在自己心里有一份自我介紹,我是在自我介紹的同時穿插了自己大學(xué)期間做的幾個項目還有自己學(xué)習(xí)了哪些東西)
?
Q:你簡歷上說自己Java基礎(chǔ)較為扎實,那我們先聊一些Java的基礎(chǔ)問題
?
Q:StringBuffer和StringBuilder有什么區(qū)別,底層實現(xiàn)上呢
A:StringBuffer線程安全,StringBuilder線程不安全,底層實現(xiàn)上的話,StringBuffer其實就是比StringBuilder多了Synchronized修飾符
?
Q:知道哪些Map
A:線程不安全HashMap,線程安全ConcurrentHashMap,有序TreeMap,實現(xiàn)ThreadLoacl用的WeakHashMap
?
Q:HashMap為什么線程不安全
A:先說1.8之前HashMap采用的是拉鏈法解決沖突,畫圖解釋了鏈表成環(huán)的原因,在1.8的時候采用了紅黑樹做處理,感覺出現(xiàn)沖突的概率沒那么高了(不知道對不對
?
Q:ConcurrentHashMap?為什么線程安全
A:講了紅黑樹和CAS,又順便提下ABA問題,以及Java的解決方案
?
Q:你簡歷提到有參加過藍橋杯比賽,那寫下快排算法,簡單的說下思想
A:手撕快排
?
Q:你說使用GIt/SVN完成項目管理那你們平時在項目中是如何使用Git,Git和SVN兩者有什么區(qū)別呢
A:說了區(qū)別,然后說我們用的Git其實用的不是很好,主要是新建分支做備份,以及Feture,需要的時候合并到master里面
?
Q:對JVM有了解嗎?簡單的介紹下
A:講了內(nèi)存模型,垃圾回收算法,以及垃圾回收器,?G1和CMS感覺是比較重要的
?
Q:用過鎖嗎,JUC包有什么了解
A:?講了JVM對鎖的優(yōu)化,還有JUC包下面的幾個鎖,和Synchronized的不同
?
Q:你項目中用到了SpringMVC,你可以大概講下你對SpringMVC的理解
A:講了IOC和DI,AOP那塊說了JDK和CGLib動態(tài)代理,兩種代理實現(xiàn)起來的不同點,接著提及項目中用到的一些Spring Data?和?Spring Security?之類的東西
?
Q:你們主要用的是Mysql還是SQL Server
A:Mysql,然后采用的是什么數(shù)據(jù)庫引擎,講了Mysql兩種引擎的區(qū)別,自己提了索引和底層數(shù)據(jù)結(jié)構(gòu)
?
Q:你們用的MyBatis還是Hibernate
A:?Hibernate,但我自己了解過MyBatis,自己也建議過項目改成MyBatis
?
Q:你為什么要建議使用MyBatis呢,他和Hibernate有什么區(qū)別呢
A:主要可能還是出于自己喜歡學(xué)習(xí),而且聽說很多互聯(lián)網(wǎng)公司都是用MyBatis,Hibernate更加笨重一點,寫的hql,但是如果數(shù)據(jù)庫移植的話,是比較簡單的,MyBatis寫的是原生的sql語句,可能對于京東這樣體量大的公司能更好的滿足自己的業(yè)務(wù)需求,畢竟sql還是比hql更加靈活的
?
接著就是一連串圍繞項目的問題,應(yīng)該每個人都不同,期間穿插著多線程的問題
提醒同學(xué)們,自己的項目可以少,兩個就夠了,但一點要熟悉項目的流程開發(fā)過程,拿出來的項目要有東西可以講,最好不要把大學(xué)期間做的大作業(yè)拿來充數(shù)。
?
Q:項目遇到的難題,有沒有JVM調(diào)優(yōu)的經(jīng)驗
A;講了自己遇到的一次內(nèi)存泄漏的問題,如何用JPS Htop?等指令,導(dǎo)出線程堆棧做問題排查,最后定位問題
?
Q:你對京東有什么了解
A:(當時這個問題感覺自己答的不是很好,建議面試的同學(xué)都在面試前找找這個公司技術(shù)團隊有沒有出過什么書或者什么技術(shù)博客,對技術(shù)選型大概有個了解)
?
一面結(jié)束,面試官說我基礎(chǔ)挺扎實的,可能周末還要我來一趟,然后我就回學(xué)校等二面通知了
二面二面其 實 沒什么好 說 的,感 覺 比一面 簡單 ,主要都是 圍繞 我 簡歷 的 項 目,和 團隊協(xié) 作來 說 的,最后提及了自己最近在學(xué) 習(xí) 什么,提了自己 對 于 ZooKeeper , Kafka 這塊比較感興趣,正在努力的學(xué)習(xí)中,然后設(shè)計了一個高并發(fā)場景,讓我思考如何處 理
?
二面結(jié)束,面試官說盡量下午發(fā)短信,結(jié)果提心吊膽等了三四天今天才收到預(yù)約HR電面的短信,希望自己HR面能順利,也希望同學(xué)能早日拿到自己想要的offer。
?
還是在學(xué)習(xí)中的菜雞一只,如果有不正確的地方希望指出!
總結(jié)
以上是生活随笔為你收集整理的本想试试看,结果却拿到了京东的Offer的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 消息称谷歌每年向苹果支付180亿~200
- 下一篇: Win11 学院:微软受控功能推送(CF