2018年終鉅獻:阿里、騰訊最新Java面試題,你準備好進BAT了嗎?

編程語言 Java Java虛擬機 設計模式 NoSQL Java高級互聯網架構 2018-12-18

Java基礎

1.進程和線程的區別;

2.Java的併發、多線程、線程模型;

3.什麼是線程池,如何使用?

4.數據一致性如何保證;Synchronized關鍵字,類鎖,方法鎖,重入鎖;

5.Java中實現多態的機制是什麼;

6.如何將一個Java對象序列化到文件裡;

7.說說你對Java反射的理解;

8.同步的方法;多進程開發以及多進程應用場景;

9.在Java中wait和seelp方法的不同;

10.synchronized 和volatile 關鍵字的作用;

11.服務器只提供數據接收接口,在多線程或多進程條件下,如何保證數據的有序到達;

12.抽象類與接口的區別;應用場景;抽象類是否可以沒有方法和屬性;

13.靜態屬性和靜態方法是否可以被繼承?是否可以被重寫?以及原因?

14.修改對象A的equals方法的簽名,那麼使用HashMap存放這個對象實例的時候,會調用哪個equals方法;

15.說說你對泛型的瞭解;

16.Java的異常體系;

17.如何控制某個方法允許併發訪問線程的個數;

18.動態代理的區別,什麼場景使用;

19.Dex加載過程和優化方式;

20.Jvm和Gc機制;

21常用的設計模式。

22.數據結構與算法

23.堆和棧在內存中的區別是什麼(數據結構方面以及實際實現方面);

24.最快的排序算法是哪個?給阿里2萬多名員工按年齡排序應該選擇哪個算法?堆和樹的區別;寫出快排代碼;鏈表逆序代碼;

25.求1000以內的水仙花數以及40億以內的水仙花數;

26.子串包含問題(KMP 算法)寫代碼實現;

27.萬億級別的兩個URL文件A和B,如何求出A和B的差集C,(Bit映射->hash分組->多文件讀寫效率->磁盤尋址以及應用層面對尋址的優化)

28.蟻群算法與蒙特卡洛算法;

29.寫出你所知道的排序算法及時空複雜度,穩定性;

30.自己集合實現一個隊列

31.自己實現線程安全類

32.快速排序和冒泡的排序,怎麼轉換一下。

2018年終鉅獻:阿里、騰訊最新Java面試題,你準備好進BAT了嗎?

二、Spring mvc與Struts區別

Hibernate/Ibatis兩者的區別

Hibernate一級和二級緩存

Hibernate實現集群部署

Hibernate如何實現聲明式事務

簡述Hibernate常見優化策略

Spring bean的加載過程(推薦看Spring的源碼)

Spring如何實現AOP和IOC

Spring bean注入方式

Spring的事務管理(推薦看Spring的源碼)

Spring事務的傳播特性

springmvc原理

springmvc用過哪些註解

Restful有幾種請求

Restful好處

Tomcat,Apache,JBoss的區別

memcached和redis的區別

有沒有遇到中文亂碼問題,如何解決的

如何理解分佈式鎖

你知道的開源協議有哪些

json和xml區別

2018年終鉅獻:阿里、騰訊最新Java面試題,你準備好進BAT了嗎?

三、設計模式:

設計模式的六大原則

常用的設計模式

用一個設計模式寫一段代碼或畫出一個設計模式的UML

如何理解MVC

高內聚,低耦合方面的理解

2018年終鉅獻:阿里、騰訊最新Java面試題,你準備好進BAT了嗎?

四、數據結構:

隊列、棧、鏈表、樹、堆、圖

編碼實現隊列、棧

操作系統:

操作系統什麼情況下會死鎖

產生死鎖的必要條件

死鎖預防

數據庫:

範式

數據庫事務隔離級別

數據庫連接池的原理

樂觀鎖和悲觀鎖

如何實現不同數據庫的數據查詢分頁

SQL注入的原理,如何預防

數據庫索引的實現(B+樹介紹、和B樹、R樹區別)

SQL性能優化

數據庫索引的優缺點以及什麼時候數據庫索引失效

10.Redis的存儲結構

網絡:

OSI七層模型以及TCP/IP四層模型

HTTP和HTTPS區別

HTTP報文內容

get提交和post提交的區別

get提交是否有字節限制,如果有是在哪限制的

TCP的三次握手和四次揮手

session和cookie的區別

HTTP請求中Session實現原理

redirect與forward區別

安全:

如果客戶端不斷的發送請求連接會怎樣

DDos攻擊

DDos預防

那怎麼知道連接是惡意的呢?可能是正常連接

其它:

說一個你參與的項目、其中作為什麼角色

遇到最困的問題是什麼,怎麼解決的

你認為自己有那些方面不足

平常如何學習的

如何評價自己

智力題:

給你50個紅球和50個黑球,有兩個一模一樣的桶,往桶裡放球,讓朋友去隨機抽,採用什麼策略可以讓朋友抽到紅球的概率更高?

從100個硬幣中找出最輕的那個假幣?

總結:

以上這些考察的知識點,在強大的互聯網上都可以搜索到答案,有些答案可能不是很全,所以需要自己去總結,但是對於一些需要知道原理的知識點,還是推薦看源代碼或者對於的書,然後總結得到自己的東西,這樣既學到真東西,還不會很容易忘。Java基礎的知識點推薦《Java編程思想》,JVM的推薦《深入理解Java虛擬機》,Spring原理的推薦《Spring源碼深度解析》,對於網站架構的推薦《大型網站技術架構核心原理與案例分析》。

以上面試題答案和資料獲取方式

關注+轉發後,私信關鍵詞 【bat】即可獲取!

重要的事情講兩遍,轉發、轉發、轉發後再發私信,才可以拿到哦!

相關推薦

推薦中...