1. 程式人生 > >JAVA面試技術棧

JAVA面試技術棧

  1. 劍指offer
  2. java基礎知識

1.1常用api

1.2 java資料結構:ArrayList擴容,HashMap結構,Hashset/Hashtable原理Collection.sort用法,BlockingQueue用法,單鏈表結構,紅黑樹;

1.3演算法:單鏈表反轉,排序演算法。

  1. java高階知識:

1.1 JVM相關:JVM如何進行gc,JVM調優,垃圾回收演算法,JVM記憶體模型,類載入機制記憶體洩漏,記憶體溢位

1.2jdk提供的命令;

1.3設計模式

  1. 多執行緒相關:

   多執行緒實現方式,對synchronized的理解,ConcurrentHashmap的結構和實現原理,

ThreadPoolExcuter原理,volitale關鍵字;

  1. Spring框架相關

IOC和AOP,動態代理,Spring攔截機制

  1. 資料庫相關:

5.1索引原理,mysql的最左匹配原則

5.2如何做讀寫分離,分庫方法ThreadLocal用法)

5.3事務相關:事務的4個隔離級別,mysql預設的隔離級別,資料庫鎖(悲觀鎖,樂觀鎖),死鎖的條件,事務註解的用法,OCID理解(原子性,有序性,可見性,冪等性)。

5.4 mysql調優。

  1. 開源框架:

6.1資料儲存:memcache,redis利弊redis鎖redisaofrdb落盤方式,redis叢集部署,一致性雜湊演算法,

Mongo資料庫

6.2RokectMq(MQ訊息丟失,MQ怎樣監聽,RoketMq高可用部署 )

6.3 Dubbo服務(dubbo和HTTP的優劣),dubbo服務的呼叫過程;

6.4Elasticjob(架構/流程圖,執行過程,選舉演算法 ),其他作業排程框架結合專案中用的排程方式),

6.5mybatis用法;

6.6關心的新技術有哪些

  1. 常用linux高階命令

top,netstat等。

  1. WEB伺服器:

tomcat用法,如何排除tomca無響應故障apachenginxdocker瞭解一下,nginx和lvs的區別

  1. 網路程式設計方面

  常見的網路超時(CLOSE_WAIT,TIME_WAIT),如何避免重試的問題,http的cookie機制,CDN原理。

其他問題:

  1. 在專案中遇到的最大的問題是什麼?怎樣解決的?
  1. 從專案中學到了什麼?