成爲java架構師的技能

0: 數據結構算法前端

  數組、鏈表、堆、棧、隊列、Hash表、二叉樹等;mysql

  算法思想:遞推、遞歸、窮舉、貪心、分治、動態規劃、迭代、分枝界限;nginx

  排序查找web

  B+/B-數、紅黑樹、圖等;redis

  圖的深度優先搜索、圖的廣度優先搜索、拓撲排序、Dijkstra算法(單源最短路徑)、霍夫曼編碼、展轉相除法、最小生成樹等算法

1: JAVA基礎:sql

  理解i/o、socket、多線程、集合等基礎框架(Collection以及各類List、Set、Queue、Map的實現以及繼承關係,實現原理CollectionsArrays); shell

  要熟練使用各類數據結構和算法,數組、哈希、鏈表、排序樹等等;數據庫

       熟悉jvm運行機制及內存管理,Jvm虛擬機原理、調優,懂得jvm能寫出性能更好的代碼;JVM內存模型、類加載機制以及性能優化; apache

       有多線程開發項目經驗(線程池,線程安全,線程鎖),對Java中concurrent包下的線程池、隊列、鎖有基本的瞭解和使用經驗;

       網絡和併發編程有豐富的經驗;

       池技術也是要掌握的,對象池、鏈接池、線程池都要會;

       Java反射技術,寫框架必備的技術;

       Java各類集合對象的實現原理,瞭解這些能夠讓你在解決問題時選擇合適的數據結構,高效地解決問題,寫出代碼;

2: 框架

     熟悉SpringMvc, Spring Boot, Spring Cloud ,Spring MVC ,mybatis,hibernate框架,並知道原理;

3:Linux

  Linux系統以及常見操做,shell等

4: 中間件:

       熟悉分佈式、緩存、消息、搜索等機制,有分佈式系統、集羣架構設計;

  熟悉常見的中間件、分佈式解決方案及其原理:分佈式緩存、SOA、消息中間件,負載均衡、鏈接池等;

       還有隊列中間件也要會操做,如消息推送,能夠先把消息寫入數據庫,推送放隊列服務器上,由推送服務器去隊列獲取處理
        ,這樣就能夠將消息放數據庫和隊列裏後直接給用戶反饋,推送過程則由推送服務器和隊列服務器完成,好處異步處理、緩解服務器壓力,解藕系統。

5: web相關: 

  好比tcp協議,建立鏈接三次握手和斷開鏈接四次握手的整個過程,不瞭解就無法對高併發網絡應用作優化,
  http協議,session和cookie的生命週期與關聯;熟悉系統集羣、負載均衡、反向代理、動靜分離,網站靜態化;
       懂得分佈式存儲系統nfs,fastdfs,tfs,Hadoop瞭解他們的優缺點,適用場景,以及分佈式緩存技術memcached,redis,提升系統性能必備。

        工具nginx必備技能超級好用,高性能,基本不會掛掉的服務器,功能多多,解決各類問題;

        熟悉大併發量、高性能優化、大數據等處理技術;

        熟悉Apache、Ngnix、Tomcat等主流Web服務器的基本配置和進程監控,熟悉集羣及負載均衡技術,熟悉主流應用服務器的架構體系;
        熟悉Hadoop、Spark等分佈式計算框架,對開源機器學習,推薦系統有了解者優先;             

        熟悉apache、nginx、tomcat、redis、MQ 等服務器的配置和調優

        瞭解TCP/IP、HTTP等協議

         熟悉分佈式系統的設計和應用,熟悉緩存、消息、負載均衡等機制和實現;

         熟練使用Tomcat、Jetty、Nginx等應用服務器;
         熟悉經常使用的互聯網技術,包括但不限於MySQL、NoSQL、RPC、MQ、緩存技術、微服務架構等;

6: 數據庫:

         Mysql必備,最基礎的數據工具,主要是免費且好用,對它基本的參數優化,慢查詢日誌分析,主從複製的配置,至少要成爲半個mysql dba;

   熟練掌握常見SQL、NoSQL數據庫原理、數據庫設計、查詢編寫和優化;

        熟悉數據庫原理以及經常使用性能優化技術;

        有在大數據、集羣、複製和相關的數據訪問設計經驗;
         在DB、系統和應用上有性能優化經驗;

7: 前端:

相關文章
相關標籤/搜索