Java研發方向如何準備BAT技術面試

Java基礎:java

面向對象和麪向過程的區別linux

Java的四個基本特性(抽象、封裝、繼承,多態)面試

Overload和Override的區別算法

構造器Constructor是否可被override數據庫

訪問控制符public,protected,private,以及默認的區別設計模式

是否能夠繼承String類數組

String和StringBuffer、StringBuilder的區別安全

hashCode和equals方法的關係性能優化

抽象類和接口的區別cookie

自動裝箱與拆箱

什麼是泛型、爲何要使用以及泛型擦除

Java中的集合類及關係圖

HashMap實現原理(看源代碼)

HashTable實現原理(看源代碼)

HashMap和HashTable區別

HashTable如何實現線程安全(看源代碼)

ArrayList和vector區別(看源代碼)

ArrayList和LinkedList區別及使用場景

Collection和Collections的區別

Concurrenthashmap實現原理(看源代碼)

Error、Exception區別

Unchecked Exception和Checked Exception,各列舉幾個

Java中如何實現代理機制(JDK、CGLIB)

多線程的實現方式

線程的狀態轉換

如何中止一個線程

什麼是線程安全

如何保證線程安全

Synchronized如何使用

synchronized和Lock的區別

多線程如何進行信息交互

sleep和wait的區別(考察的方向是是否會釋放鎖)

多線程與死鎖

如何才能產生死鎖

什麼叫守護線程,用什麼方法實現守護線程

Java線程池技術及原理

java併發包concurrent及經常使用的類

volatile關鍵字

Java中的NIO,BIO,AIO分別是什麼

IO和NIO區別

序列化與反序列化

常見的序列化協議有哪些

內存溢出和內存泄漏的區別

Java內存模型及各個區域的OOM,如何重現OOM

出現OOM如何解決

用什麼工具能夠查出內存泄漏

Java內存管理及回收算法

Java類加載器及如何加載類(雙親委派)

xml解析方式

Statement和PreparedStatement之間的區別

 

設計模式:

設計模式的六大原則

經常使用的設計模式

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

如何理解MVC

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

算法:

深度優先、廣度優先算法

排序算法及對應的時間複雜度和空間複雜度

寫一個排序算法

查找算法

B+樹和二叉樹查找時間複雜度

KMP算法、hash算法

經常使用的hash算法有哪些

如何判斷一個單鏈表是否有環?

給你一萬個數,如何找出裏面全部重複的數?用全部你能想到的方法,時間複雜度和空間複雜度分別是多少?

給你一個數組,如何裏面找到和爲K的兩個數?

100000個數找出最小或最大的10個?

一堆數字裏面繼續去重,要怎麼處理?

數據結構:

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

編碼實現隊列、棧

Linux:

linux經常使用命令

如何查看內存使用狀況

Linux下如何進行進程調度

操做系統:

操做系統什麼狀況下會死鎖

產生死鎖的必要條件

死鎖預防

數據庫:

範式

數據庫事務隔離級別

數據庫鏈接池的原理

樂觀鎖和悲觀鎖

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

SQL注入的原理,如何預防

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

SQL性能優化

數據庫索引的優缺點以及何時數據庫索引失效

Redis的存儲結構

網絡:

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

HTTP和HTTPS區別

HTTP報文內容

get提交和post提交的區別

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

TCP的三次握手和四次揮手

session和cookie的區別

HTTP請求中Session實現原理

redirect與forward區別

DNS

TCP和UDP區別

安全:

若是客戶端不斷的發送請求鏈接會怎樣

DDos攻擊

DDos預防

那怎麼知道鏈接是惡意的呢?多是正常鏈接

歡迎工做一到十年的Java工程師朋友們加入Java進階高級架構裙:858327216

本羣提供免費的學習指導 架構資料 以及免費的解答

不懂得問題均可以在本羣提出來 以後還會有職業生涯規劃以及面試指導

相關文章
相關標籤/搜索