一般的程式員或許只需知道一些JAVA的語法結構,能對資料庫數據進行CRUD就可以應付了。但要成為JAVA(高級) 工程師,就要對JAVA做比較深入的研究,需要不斷學習進步,以下對高級工程師需要突破的知識點做個簡要整理 ...
一般的程式員或許只需知道一些JAVA的語法結構,能對資料庫數據進行CRUD就可以應付了。但要成為JAVA(高級) 工程師,就要對JAVA做比較深入的研究,需要不斷學習進步,以下對高級工程師需要突破的知識點做個簡要整理。
Java高級工程師需要弄明白的20個知識點
- 1、對多線程的瞭解,尤其是對線程池的理解,對ThreadPoolExecutor構造參數各個作用的理解、瞭解Fxied Pool、Cached Pool分別的作用
- 2、對鎖的瞭解,synchronized、Lock介面(及其對應的實現的理解)
- 3、對JDK中HaskMap、ArrayList的源代碼級別理解;對併發包中ConcurrentHashMap源代碼級別的理解(可以基於JDK8、在瞭解JDK7)
- 4、熟練使用Mybais、Spring框架
- 5、對Spring Bean生命周期的理解、Spring 事務管理的理解(主要關註隔離性、事務的幾種傳播方式)
- 6、對Spring AOP能夠用於哪些場景、實現AOP的核心技術是什麼(JDK Proxy、cglib包)
- 7、對Tomcat的架構有所理解(底層通訊框架是什麼:NIO、如何做到隔離:自定義的classloader)
- 8、對分散式理論的瞭解(CAP、BASE等)
- 9、對分散式鎖理論的瞭解,及其哪些方式可以實現、如何實現(Redis、Zookeeper)
- 10、對分散式事務理論的瞭解(2PC、3PC、TCC),及其哪些方式可以實現、如何實現(MQ等)
- 11、對Redis的理解以及應用(分散式應該如何配置)有多少種的數據結構、持久化是如何設計
- 12、對Zookeeper的理解以及應用(選主過程ZAB協議,幾種節點Leader、Follewer、Observer,4種節點:持久、持久有序、臨時、臨時有序)
- 13、基本的設計模式:工廠、單例、表驅動法、模板等
- 14、線程的幾大狀態,以及狀態變化
- 15、資料庫大數據如何優化(幾千萬,幾億級的)
- 16、如何做分散式事務鎖?
- 17、dubbo、Sping Boot、Sping cloud等分散式框架各有什麼特點,選型的依據是什麼?
- 18、介紹下zeekeeper如何領導者決策過程
- 19、Java基礎技術體系、JVM記憶體分配、垃圾回收、類裝載機制、性能優化、反射機制、網路編程、常用數據結構和相關演算法
- 20、常見的一些解決方案及其原理:單點登錄、分散式緩存、SOA、全文檢索、消息中間件,負載均衡、連接池、流計算等