面試
-
- 前言
- 一、java面試題
-
- 1. java基礎面試知識點
- 2. java深入原始碼級的面試題
- 3. 資料結構
- 4. 執行緒、多執行緒和執行緒池
- 5.并發編程有關知識點
- 總結
前言
最近有很多小伙伴跟我吐槽現在的面試越來越難了,去面試老是被刷,感覺面試官就是在耍自己,為此,我給各位小伙伴準備了一個面試進京東的小伙伴的面試題庫,希望大家都能進大廠
(文章中有超級福利)
一、java面試題
熟練掌握java是很關鍵的,大公司不僅僅要求你會使用幾個api,更多的是要你熟悉原始碼實作原理,甚至要你知道有哪些不足,怎么改進,還有一些java有關的一些演算法,設計模式等等,
1. java基礎面試知識點
- java中==和equals和hashCode的區別
- int、char、long各占多少位元組數 int與integer的區別
- 談談對java多型的理解
- String、StringBuffer、StringBuilder區別
- 什么是內部類?內部類的作用
- 抽象類和介面區別
- 抽象類的意義
- 抽象類與介面的應用場景
- 抽象類是否可以沒有方法和屬性?
- 介面的意義
- 泛型中extends和super的區別
- 父類的靜態方法能否被子類重寫
- 行程和執行緒的區別
- final,finally,finalize的區別
- 序列化的方式 Serializable和Parcelable的區別
- 靜態屬性和靜態方法是否可以被繼承?是否可以被重寫?以及原因?
- 靜態內部類的設計意圖
- 成員內部類、靜態內部類、區域內部類和匿名內部類的理解,以及專案中的應用
- 談談對kotlin的理解
- 閉包和區域內部類的區別
- string轉換成 integer的方式及原理
2. java深入原始碼級的面試題
- 哪些情況下的物件會被垃圾回識訓制處理掉?
- 講一下常見編碼方式?
- utf-8編碼中的中文占幾個位元組;int型幾個位元組?
- 靜態代理和動態代理的區別,什么場景使用?
- Java的例外體系
- 談談你對決議與分派的認識,
- 修改物件A的equals方法的簽名,那么使用HashMap存放這個物件實體的時候,會呼叫哪個equals方法?
- Java中實作多型的機制是什么?
- 如何將一個Java物件序列化到檔案里?
- 說說你對Java反射的理解
- 說說你對Java注解的理解
- 說說你對依賴注入的理解
- 說一下泛型原理,并舉例說明
- Java中String的了解
- String為什么要設計成不可變的?
- Object類的equal和hashCode方法重寫,為什么?
3. 資料結構
- 常用資料結構簡介
- 并發集合了解哪些?
- 列舉java的集合以及集合之間的繼承關系
- 集合類以及集合框架
- 容器類介紹以及之間的區別
- 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+樹的理解
- 講一下對圖的理解
- 判斷單鏈表成環與否?
- 鏈表翻轉(即:翻轉一個單項鏈表)
- 合并多個單有序鏈表(假設都是遞增的)
4. 執行緒、多執行緒和執行緒池
- 開啟執行緒的三種方式?
- 執行緒和行程的區別?
- 為什么要有執行緒,而不是僅僅用行程?
- 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的并發、多執行緒、執行緒模型
- 談談對多執行緒的理解
- 多執行緒有什么要注意的問題?
- 談談你對并發編程的理解并舉例說明
- 談談你對多執行緒同步機制的理解?
- 如何保證多執行緒讀寫檔案的安全?
- 多執行緒斷點續傳原理
- 斷點續傳的實作
5.并發編程有關知識點
Android開發中對并發編程可以做得比較少,Thread這個類經常會用到,但是我們想提升自己的話,一定不能停留在表面,,我們也應該去了解一下java的關于執行緒相關的原始碼級別的東西,
總結
我還整理了一些大廠java程式員面試涉及到的絕大部分面試題及答案免費分享給大家,希望能幫助到大家,有需要的朋友可以看下面的免費領取方式!
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
戳這里暗號:博客園


轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/230918.html
標籤:其他
下一篇:最短路徑問題——分支限界法
