天天看點

Java 進階面試知識點彙總!

1、常用設計模式

單例模式:懶漢式、餓漢式、雙重校驗鎖、靜态加載,内部類加載、枚舉類加載。保證一個類僅有一個執行個體,并提供一個通路它的全局通路點。

代理模式:動态代理和靜态代理,什麼時候使用動态代理。

擴充卡模式:将一個類的接口轉換成客戶希望的另外一個接口。擴充卡模式使得原本由于接口不相容而不能一起工作的那些類可以一起工作。

裝飾者模式:動态給類加功能。

觀察者模式:有時被稱作釋出/訂閱模式,觀察者模式定義了一種一對多的依賴關系,讓多個觀察者對象同時監聽某一個主題對象。這個主題對象在狀态發生變化時,會通知所有觀察者對象,使它們能夠自動更新自己。

政策模式:定義一系列的算法,把它們一個個封裝起來, 并且使它們可互相替換。

外觀模式:為子系統中的一組接口提供一個一緻的界面,外觀模式定義了一個高層接口,這個接口使得這一子系統更加容易使用。

指令模式:将一個請求封裝成一個對象,進而使您可以用不同的請求對客戶進行參數化。

建立者模式:将一個複雜的建構與其表示相分離,使得同樣的建構過程可以建立不同的表示。

抽象工廠模式:提供一個建立一系列相關或互相依賴對象的接口,而無需指定它們具體的類。

2、基礎知識

Java基本類型哪些,所占位元組和範圍

Set、List、Map的差別和聯系

什麼時候使用Hashmap

什麼時候使用Linkedhashmap、Concurrenthashmap、Weakhashmap

哪些集合類是線程安全的

為什麼Set、List、map不實作Cloneable和Serializable接口

Concurrenthashmap的實作,1.7和1.8的實作

Arrays.sort的實作

什麼時候使用CopyOnArrayList

volatile的使用

synchronied的使用

reentrantlock的實作和Synchronied的差別

CAS的實作原理以及問題

AQS的實作原理

接口和抽象類的差別,什麼時候使用

類加載機制的步驟,每一步做了什麼,static和final修改的成員變量的加載時機

雙親委派模型

反射機制:反射動态擦除泛型、反射動态調用方法等

動态綁定:父類引用指向子類對象

JVM記憶體管理機制:有哪些區域,每個區域做了什麼

JVM垃圾回收機制:垃圾回收算法 垃圾回收器 垃圾回收政策

jvm參數的設定和jvm調優

什麼情況産生年輕代記憶體溢出、什麼情況産生年老代記憶體溢出

内部類:靜态内部類和匿名内部類的使用和差別

Redis和memcached:什麼時候選擇redis,什麼時候選擇memcached,記憶體模型和存儲政策是什麼樣的

MySQL的基本操作 主從資料庫一緻性維護

mysql的優化政策有哪些

mysql索引的實作 B+樹的實作原理

什麼情況索引不會命中,會造成全表掃描

java中bio nio aio的差別和聯系

為什麼bio是阻塞的 nio是非阻塞的 nio是模型是什麼樣的

Java io的整體架構和使用的設計模式

Reactor模型和Proactor模型

http請求封包結構和内容

http三次握手和四次揮手

rpc相關:如何設計一個rpc架構,從io模型 傳輸協定 序列化方式綜合考慮

Linux指令 統計,排序,前幾問題等

StringBuff 和StringBuilder的實作,底層實作是通過byte資料,外加數組的拷貝來實作的

cas操作的使用

記憶體緩存和資料庫的一緻性同步實作

微服務的優缺點

線程池的參數問題

ip問題 如何判斷ip是否在多個ip段中

判斷數組兩個中任意兩個數之和是否為給定的值

樂觀鎖和悲觀鎖的實作

synchronized實作原理

你在項目中遇到的困難和怎麼解決的

你在項目中完成的比較出色的亮點

消息隊列廣播模式和釋出/訂閱模式的差別

生産者消費者代碼實作

死鎖代碼實作

線程池:參數,每個參數的作用,幾種不同線程池的比較,阻塞隊列的使用,拒絕政策

Future和ListenableFuture 異步回調相關

算法相關:判斷能否從數組中找出兩個數字和為給定值,随機生成1~10000不重複并放入數組,求數組的子數組的最大和,二分查找算法的實作及其時間複雜計算

3、其它

算法:常用排序算法,二分查找,連結清單相關,數組相關,字元串相關,樹相關等

常見序列化協定及其優缺點

memcached記憶體原理,為什麼是基于塊的存儲

搭建一個rpc需要準備什麼

如果線上伺服器頻繁地出現full gc ,如何去排查

如果某一時刻線上機器突然量變得很大,服務扛不住了,怎麼解決

LUR算法的實作

LinkedHashMap實作LRU

定義棧的資料結構,請在該類型中實作一個能夠找到棧最小元素的min函數

海量資料處理的解決思路

reactor模型的演變

阻塞、非阻塞、同步、異步差別

Collection的子接口

jvm調優相關

zookeeper相關,節點類型,如何實作服務發現和服務注冊

nginx負載均衡相關,讓你去實作負載均衡,該怎麼實作

linux指令,awk、cat、sort、cut、grep、uniq、wc、top等

壓力測試相關,怎麼分析,單接口壓測和多情況下的壓測

你覺得你的有點是什麼,你的缺點是什麼

spring mvc的實作原理

netty底層實作,IO模型,ChannelPipeline的實作和原理

緩存的設計和優化

緩存和資料庫一緻性同步解決方案

你所在項目的系統架構,談談整體實作

消息隊列的使用場景

ActiveMQ、RabbitMQ、Kafka的差別

掃描關注我們的微信公衆号,幹貨每天更新。

image