一般的程序員或許只需知道一些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、全文檢索、消息中間件,負載均衡、連接池、流計算等