最全的BAT大廠面試題(百度、小米、樂視、美團、58、獵豹、360)【 java基礎面試知識點】

Javajiagou發表於2019-03-24

一、java面試題
熟練掌握java是很關鍵的,大公司不僅僅要求你會使用幾個api,更多的是要你熟悉原始碼實現原理,甚至要你知道有哪些不足,怎麼改進,還有一些java有關的一些演算法,設計模式等等。

(一) java基礎面試知識點

java中==和equals和hashCode的區別
int、char、long各佔多少位元組數
int與integer的區別
談談對java多型的理解
String、StringBuffer、StringBuilder區別
什麼是內部類?內部類的作用
抽象類和介面區別
抽象類的意義
抽象類與介面的應用場景
抽象類是否可以沒有方法和屬性?
介面的意義
泛型中extends和super的區別
父類的靜態方法能否被子類重寫
程式和執行緒的區別
final,finally,finalize的區別
序列化的方式
Serializable 和Parcelable 的區別
靜態屬性和靜態方法是否可以被繼承?是否可以被重寫?以及原因?
靜態內部類的設計意圖
成員內部類、靜態內部類、區域性內部類和匿名內部類的理解,以及專案中的應用
談談對kotlin的理解
閉包和區域性內部類的區別
string 轉換成 integer的方式及原理
(二) java深入原始碼級的面試題(有難度)

哪些情況下的物件會被垃圾回收機制處理掉?
講一下常見編碼方式?
utf-8編碼中的中文佔幾個位元組;int型幾個位元組?
靜態代理和動態代理的區別,什麼場景使用?
Java的異常體系
談談你對解析與分派的認識。
修改物件A的equals方法的簽名,那麼使用HashMap存放這個物件例項的時候,會呼叫哪個equals方法?
Java中實現多型的機制是什麼?
如何將一個Java物件序列化到檔案裡?
說說你對Java反射的理解
說說你對Java註解的理解
說說你對依賴注入的理解
說一下泛型原理,並舉例說明
Java中String的瞭解
String為什麼要設計成不可變的?
Object類的equal和hashCode方法重寫,為什麼?
(三) 資料結構

常用資料結構簡介
併發集合瞭解哪些?
列舉java的集合以及集合之間的繼承關係
集合類以及集合框架
容器類介紹以及之間的區別(容器類估計很多人沒聽這個詞,Java容器主要可以劃分為4個部分:List列表、Set集合、Map對映、工具類(Iterator迭代器、Enumeration列舉類、Arrays和Collections)
List,Set,Map的區別
List和Map的實現方式以及儲存方式
HashMap的實現原理
HashMap資料結構?
HashMap原始碼理解
HashMap如何put資料(從HashMap原始碼角度講解)?
HashMap怎麼手寫實現?
ConcurrentHashMap的實現原理
ArrayMap和HashMap的對比
HashTable實現原理
TreeMap具體實現
HashMap和HashTable的區別
HashMap與HashSet的區別
HashSet與HashMap怎麼判斷集合元素重複?
集合Set實現Hash怎麼防止碰撞
ArrayList和LinkedList的區別,以及應用場景
陣列和連結串列的區別
二叉樹的深度優先遍歷和廣度優先遍歷的具體實現
堆的結構
堆和樹的區別
堆和棧在記憶體中的區別是什麼(解答提示:可以從資料結構方面以及實際實現方面兩個方面去回答)?
什麼是深拷貝和淺拷貝
手寫連結串列逆序程式碼
講一下對樹,B+樹的理解
講一下對圖的理解
判斷單連結串列成環與否?
連結串列翻轉(即:翻轉一個單項鍊表)
合併多個單有序連結串列(假設都是遞增的)
(四) 執行緒、多執行緒和執行緒池

開啟執行緒的三種方式?
執行緒和程式的區別?
為什麼要有執行緒,而不是僅僅用程式?
run()和start()方法區別
如何控制某個方法允許併發訪問執行緒的個數?
在Java中wait和seelp方法的不同;
談談wait/notify關鍵字的理解
什麼導致執行緒阻塞?
執行緒如何關閉?
講一下java中的同步的方法
資料一致性如何保證?
如何保證執行緒安全?
如何實現執行緒同步?
兩個程式同時要求寫或者讀,能不能實現?如何防止程式的同步?
執行緒間操作List
Java中物件的生命週期
Synchronized用法
synchronize的原理
談談對Synchronized關鍵字,類鎖,方法鎖,重入鎖的理解
static synchronized 方法的多執行緒訪問和作用
同一個類裡面兩個synchronized方法,兩個執行緒同時訪問的問題
volatile的原理
談談volatile關鍵字的用法
談談volatile關鍵字的作用
談談NIO的理解
synchronized 和volatile 關鍵字的區別
synchronized與Lock的區別
ReentrantLock 、synchronized和volatile比較
ReentrantLock的內部實現
lock原理
死鎖的四個必要條件?
怎麼避免死鎖?
物件鎖和類鎖是否會互相影響?
什麼是執行緒池,如何使用?
Java的併發、多執行緒、執行緒模型
談談對多執行緒的理解
多執行緒有什麼要注意的問題?
談談你對併發程式設計的理解並舉例說明
談談你對多執行緒同步機制的理解?
如何保證多執行緒讀寫檔案的安全?
多執行緒斷點續傳原理
斷點續傳的實現

相關文章