JAVA面試技術棧
- 劍指offer
- java基礎知識:
1.1常用api;
1.2 java資料結構:ArrayList擴容,HashMap結構,Hashset/Hashtable原理,Collection.sort用法,BlockingQueue用法,單鏈表結構,紅黑樹;
1.3演算法:單鏈表反轉,排序演算法。
- java高階知識:
1.1 JVM相關:JVM如何進行gc,JVM調優,垃圾回收演算法,JVM記憶體模型,類載入機制,記憶體洩漏,記憶體溢位;
1.2jdk提供的命令;
1.3設計模式。
- 多執行緒相關:
多執行緒實現方式,對synchronized的理解,ConcurrentHashmap的結構和實現原理,
- Spring框架相關:
IOC和AOP,動態代理,Spring攔截機制。
- 資料庫相關:
5.1索引原理,mysql的最左匹配原則;
5.2如何做讀寫分離,分庫方法(ThreadLocal用法);
5.3事務相關:事務的4個隔離級別,mysql預設的隔離級別,資料庫鎖(悲觀鎖,樂觀鎖),死鎖的條件,事務註解的用法,OCID理解(原子性,有序性,可見性,冪等性)。
5.4 mysql調優。
- 開源框架:
6.1資料儲存:memcache,redis利弊,redis鎖,redis的aof和rdb落盤方式,redis叢集部署,一致性雜湊演算法,
6.2RokectMq(MQ訊息丟失,MQ怎樣監聽,RoketMq高可用部署 );
6.3 Dubbo服務(dubbo和HTTP的優劣),dubbo服務的呼叫過程;
6.4Elasticjob(架構/流程圖,執行過程,選舉演算法 ),其他作業排程框架(結合專案中用的排程方式),
6.5mybatis用法;
6.6關心的新技術有哪些。
- 常用linux高階命令:
top,netstat等。
- WEB伺服器:
tomcat用法,如何排除tomca無響應故障,apache,nginx,docker瞭解一下,nginx和lvs的區別。
- 網路程式設計方面:
常見的網路超時(CLOSE_WAIT,TIME_WAIT),如何避免重試的問題,http的cookie機制,CDN原理。
其他問題:
- 在專案中遇到的最大的問題是什麼?怎樣解決的?
- 從專案中學到了什麼?