進入BAT等主流網際網路公司做Java開發需要達到什麼技術水平?

java填坑路發表於2018-12-19

最近面試了阿里、京東、美團、滴滴等大型網際網路公司,最終收到了美團offer,這次面試過後,我把面試過的公司的面試題做了一個整理。這篇文章是我憑回憶記錄的,面試題沒有順序,不分先後,接下來公佈我去阿里、京東、美團等一線網際網路公司的面試題:

一、阿里巴巴面試

1、開發中Java用得比較多的資料結構有哪些?

2、談談你對HashMap的理解,底層原理的基本實現,HashMap怎麼解決碰撞問題的?

這些資料結構中是執行緒安全的嗎?假如你回答HashMap是執行緒安全的,接著問有沒有執行緒安全的map,接下來問conurren包。

3、對JVM熟不熟悉?簡單說說類載入過程,裡面執行的哪些操作?問了GC和記憶體管理,平時在tomect裡面有沒有進行過相關的配置。

4、說一下http協議、get和post的基本區別,接著問tcp/ip協議,三次握手,視窗滑動機制。

5、開發中用了哪些資料庫?回答mysql;儲存引擎有哪些?然後問了我悲觀鎖和樂觀鎖問題使用場景、分散式叢集實現的原理。

6、springmvc和mybatis的工作原理,有沒有看過底層原始碼?

二、京東金融面試

1、Dubbo超時重試;Dubbo超時時間設定

2、如何保障請求執行順序

3、分散式事物與分散式鎖(扣款不要出現負數)

4、分散式session設定

5、執行某操作,前50次成功,第51次失敗a全部回滾b前50次提交第51次拋異常,ab場景分別如何設定Spring(傳播性)

6、Zookeeper有哪些用

7、JVM記憶體模型

8、資料庫垂直和水平拆分

9、MyBatis如何分頁;如何設定快取;MySQL分頁。

10、熟悉IO麼?與NIO的區別,阻塞與非阻塞的區別。

11、分散式session一致性

12、分散式介面的冪等性設計「不能重複扣款」

三、美團面試

1、最近做的比較熟悉的專案是哪個?畫一下專案技術架構圖。

2、JVM老年代和新生代的比例?

3、YGC和FGC發生的具體場景

4、jstack,jmap,jutil分別的意義?如何線上排查JVM的相關問題?

5、執行緒池的構造類的方法的5個引數的具體意義?

6、單機上一個執行緒池正在處理服務如果忽然斷電該怎麼辦?(正在處理和阻塞佇列裡的請求怎麼處理?)

7、使用無界阻塞佇列會出現什麼問題?

8、介面如何處理重複請求?

9、具體處理方案是什麼?

10、如何保證共享變數修改時的原子性?

11、設計一個對外服務的介面實現類,在1,2,3這三個主機(對應不同IP)上實現負載均衡和順序輪詢機制(考慮併發)

四、滴滴面試

1、自我介紹;技術特點

2、興趣是什麼;優勢是什麼

3、jvm、jre以及jdk三者之間的關係?

4、Dubbo的底層原理,Zookeeper是什麼

5、cincurrentMap的機制;TreeMap;Volatil關鍵字

6、快速排序;廣度優先搜尋(佇列實現)

7、快取的雪崩以及穿透的理解?

8、HashMap的key可以重複嗎?

9、synchronized和lock的區別?

10.開發一個大型網站你會考慮哪些問題?

以上就是全部的面試題目,針對以上知識點,結合當前網際網路公司的技術需求及主流技術,我整理了一套系統的架構技術體系。不少公司很重視高併發高可用的技術,特別是一線網際網路公司,分散式、JVM、spring原始碼分析、微服務等知識點已經是面試的必考題。這些東西可能你們平時在工作中接觸過,但是缺少全面系統的學習,希望對正在面試的朋友或是遭遇技術瓶頸的程式設計師們提供一點思路。

架構築基篇

效能優化如何理解

常用工具調優

linux基礎與進階

開源框架篇

Sprng5框架

AOP原始碼解析

Mybatis

IOC原始碼解析

Spring MVC

高效能架構篇

分散式架構思維

分散式協調和分流

高可靠資料儲存

快取和NoSQL

非同步與訊息中介軟體

分散式解決方案實戰

微服務架構篇

SpringBoot

SpringCloud

Docker虛擬技術

Dubbo應用及原始碼解讀

團隊協作開發篇

Git

Maven

Sonar

Jenkins

B2C商城專案實戰篇

系統設計

使用者管理子系統

搜尋子系統

訂單子系統

商品管理子系統

支付系統

後臺系統

分散式排程系統

歡迎工作一到五年的Java工程師朋友們加入Java填坑之路:860113481

群內提供免費的Java架構學習資料(裡面有高可用、高併發、高效能及分散式、Jvm效能調優、Spring原始碼,MyBatis,Netty,Redis,Kafka,Mysql,Zookeeper,Tomcat,Docker,Dubbo,Nginx等多個知識點的架構資料)合理利用自己每一分每一秒的時間來學習提升自己,不要再用”沒有時間“來掩飾自己思想上的懶惰!趁年輕,使勁拼,給未來的自己一個交代!


相關文章