java小白到架構師技術圖譜(整理全網,持續更新)

本文整理於github上各大star大神倉庫。並根據本身的理解從新進行了整理java

本文已經收錄於 https://github.com/fengdongdo...

後序會繼續更新mysql

1、計算機基礎

一、數據結構

(1)基本數據結構

  • 數據結構基本概念(時間複雜度和空間複雜度的計算方法)
  • 數組
  • 鏈表
  • 集合
  • 隊列
  • 關聯數組
  • 跳錶
  • 倒排索引
  • BitSet

(2)樹

  • 二叉樹
  • 平衡二叉樹
  • 徹底二叉樹
  • 哈弗曼樹
  • 二叉查找樹
  • B、B+、B*樹
  • LSM樹
  • 字典樹
  • 紅黑樹
  • 線段樹

(3)圖

  • 最小生成樹
  • 最短路徑算法
  • 拓撲排序
  • 深搜和廣搜

(4)排序算法

  • 選擇排序
  • 冒泡排序
  • 插入排序
  • 快速排序
  • 歸併排序
  • 希爾排序
  • 基數排序
  • 計數排序
  • 桶排序
  • 堆排序
  • 排序算法使用場景特色總結

(5)查找算法

  • 順序查找
  • 二分查找
  • 插值查找
  • 斐波那契查找
  • 樹表查找

(6)常見算法

  • KMP算法
  • 貪心算法
  • 回溯算法
  • 剪枝算法
  • 動態規劃
  • 並查集
  • 樸素貝葉斯
  • 遞歸算法
  • 符號表
  • 布隆過濾器

二、計算機網絡

(1)協議

  • OSI七層協議
  • TCP/IP協議
  • HTTP協議

(2)網絡模型

  • 阻塞式IO
  • 非阻塞式IO
  • 複用IO
  • 信號驅動IO
  • 異步IO
  • Epoll模型
  • javaNIO
  • javaAIO
  • kqueue

(3)序列化

  • java序列化
  • protoBuf
  • protoStuff
  • avro
  • Hessian

三、操做系統

(1)基本知識

  • 操做系統的四個特徵
  • 操做系統的功能

(2)進程與線程

  • 進程的概念與分類
  • 線程的概念與分類
  • 進程與線程的區別
  • 進行的狀態轉換
  • CPU調度算法
  • 管程
  • 協程
  • 進程間的通訊方式
  • 進程間同步問題ios

    • 生產者消費者問題
    • 哲學家就餐問題
    • 讀者-寫者問題
    • 鎖死的四個必要條件
    • 死鎖處理

(3)內存管理

  • 段式管理
  • 頁式管理
  • 段頁式管理
  • 頁面調度算法

(4)其餘

  • 虛擬內存和邏輯內存
  • 靜態連接和動態連接
  • 緩存
  • 殭屍進程與孤兒進程

2、java基礎

一、面向對象基礎

  • 繼承
  • 封裝
  • 多態
  • 接口
  • 抽象類

二、java集合

  • 整體框架
  • Collection
  • ArrayList
  • LinkedList
  • Vector
  • Stack
  • 快速失敗和快速安全
  • HashMap
  • TreeMap
  • LinkedHashMap
  • HashSet
  • TreeSet
  • Hashtable
  • WeakHashMap

三、關鍵字和類

  • transient
  • instanceof
  • static
  • this
  • super
  • void
  • final
  • Stringgit

    • String爲何不可變
    • String、StringBuilder、StringBuffer區別
    • String到底新建了幾個對象

四、java高級特色

  • 註解
  • 反射
  • 泛型
  • 異常
  • 枚舉
  • IO機制
  • 編碼轉換
  • java8新特性
  • java11新特性

五、併發庫

(1)併發基礎

  • Thread生命週期
  • 線程安全問題
  • 線程通訊模式
  • sleep和wait的區別
  • ThreadLocal

(2)原子特性

  • AtomicInteger
  • AtomicBoolean
  • AtomicStampedReference
  • Unsafe
  • CAS

(3)併發工具

  • CountDownLatch
  • CylicBarrier
  • Semaphore
  • Exchanger
  • Phaser
  • ForkJoin

(4)鎖機制

  • synchronized
  • volatile
  • Reentrantlock
  • ReenReadWriteLock
  • StampedLock
  • 公平鎖和非公平鎖
  • 悲觀鎖和樂觀鎖
  • ABA問題
  • 互斥鎖和共享鎖
  • 可重入鎖和不可重入鎖
  • AQS機制
  • RingBuffer
  • 鎖升級
  • 鎖消除
  • 鎖粗化

(5)併發容器

  • ConcurrentHashMap
  • ConcurrentSkipListMap
  • ConcurrentSkipSet
  • ConcurrentLinkedQueue
  • CopyOnWriteArrayList
  • 阻塞隊列
  • 優先級隊列

(6)線程池

  • 線程池的幾種狀態切換
  • 線程池的參數
  • 線程池的啓動流程
  • 線程池的分類
  • 線程池的大小設置

六、JVM

  • java內存結構(jdk1.7和1.8)
  • 垃圾回收機制
  • 類加載機制
  • 內存分類和回收
  • 四種引用(強、軟、弱、虛)
  • 內存溢出
  • JVM調優工具
  • 垃圾回收器
  • ZGC的認識
  • JNI
  • 內存逃逸

3、必備基礎

一、設計模式

  • 建立型模式
  • 結構性模式
  • 行爲性模式
  • 設計模式的六種原則
  • MVC模型
  • MVVC模型
  • UML
  • 康威定理

二、Linux

  • Linux目錄結構
  • 常見命令
  • 文件系統管理
  • 用戶系統管理
  • 進程管理
  • 網絡管理
  • 備份與恢復
  • 文本文件處理命令
  • shell編程

三、代碼工具

  • Git
  • Maven
  • gradle
  • 日誌框架
  • Junit

4、數據庫

一、mysql

(1)基本知識

  • 三大範式
  • 數據庫、數據表、字段的增刪改查基本操做
  • 分區表
  • 視圖
  • 外鍵約束
  • 遊標
  • 變量
  • 存儲過程
  • 函數
  • 字符集

(2)存儲引擎

  • InnoDB
  • MyISAM
  • 轉換表的引擎

(3)事務

  • 隔離級別
  • 多版本併發工具
  • 分佈式事務
  • ACID特性

(4)索引

  • 彙集索引
  • 非彙集索引
  • 複合索引
  • 底層實現原理

(5)鎖

(6)測試

(7)優化方案

  • 數據類型優化
  • 索引優化
  • 查詢性能優化
  • mysql配置優化
  • 硬件優化

(8)高可用方案

(9)複製遷移

二、Redis

  • 持久化機制
  • 緩存三種問題(穿透、擊穿、雪崩)
  • 內存淘汰策略
  • 哨兵機制
  • 集羣方案
  • 複製原理

三、MongoDB

四、Hbase

5、經常使用基本框架

一、servlet

二、Spring系列家族

三、Mybatis

四、JPA

五、Netty

六、websocket

6、運維統計相關

一、平臺監控

  • zabbix、Nagios、Ganglia等
  • Linux命令監控:top、sar、tsar、nload等
  • JVM監控工具

二、APM

三、持續集成

  • 持續集成工具Jenkins
  • TeamCity
  • Travis CI
  • GitLab CI
  • 環境分離

四、容器相關

  • Docker
  • K8S

五、虛擬化

  • KVM
  • Xen
  • OpenVZ

六、自動化運維

  • Ansible
  • puppet
  • chef

七、測試

  • 單元測試
  • 壓力測試
  • 灰度測試
  • A/B測試
  • 藍綠測試
  • TDD測試理論
  • 全鏈路測試

7、中間件

一、web

  • Nginx
  • OpenRestry
  • Tengine
  • ApacheHttpd

二、服務器

  • Tomcat
  • Jetty
  • WebLogic
  • JBoss

三、緩存

  • 本地緩存
  • 客戶端緩存
  • web緩存
  • Memcached
  • Redis
  • Tair
  • cellar

四、消息隊列

  • Kafka
  • ActiveMQ
  • RocketMQ
  • RabbitMQ
  • Redis消息隊列
  • ZeroMQ

五、RPC

  • Dubbo
  • Thrift
  • gRPC
  • java的RMI

六、定時任務

  • Quartz
  • cron定時調度
  • java定時任務
  • Elastic-job
  • opencron
  • LTS

七、數據庫中間件

  • Mycat
  • Sharding Jdbc

八、搜索引擎

  • Lucene
  • Elasticsearch
  • Solr
  • sphinx

8、微服務

一、微服務框架

  • Springcloud
  • SpringCloud Alibaba
  • Dropwizard
  • Akka

二、註冊中心

  • Eureka
  • Zookeeper
  • Consul

三、服務調用

  • Feigh
  • restTemplete

四、負載均衡

  • Ribbon

五、網關

  • Gateway
  • kong
  • zuul

六、配置中心

  • Zookeeper
  • Apollo
  • Springcloud Config

七、鏈路跟蹤

  • SpringCloud Bus
  • SpringCloud Sleuth
  • Zipkin
  • Dapper
  • log-based
  • HTrace

9、分佈式

一、分佈式理論

  • CAP理論
  • BASE理論
  • 冪等性
  • 分佈式鎖程序員

    • redis實現
    • 數據庫實現
    • Zookeeper實現

二、一致性算法

  • Paxos
  • ZAB
  • Raft
  • Gossip
  • 兩階段提交協議
  • 節點選舉策略
  • 一致性hash算法

三、分佈式文件系統

  • HDFS
  • fastDFS

四、分佈式ID

  • Snowflake算法
  • Flicker算法
  • UUID
  • MongoDB實現

五、分佈式事務

  • 多階段提交
  • TCC補償事務
  • 本地消息表
  • MQ事務消息
  • 最大努力通知

六、穩定性高可用方案

  • 軟硬件負載均衡
  • 限流
  • 容災
  • 平滑啓動

10、安全

一、web安全

  • XSS
  • CRSF
  • SQL注入
  • DDOS
  • DNS攻擊
  • 腳本注入
  • 序列化攻擊
  • 中間人攻擊

二、加密解密算法

  • 對稱加密
  • 非對稱加密
  • hash算法
  • 數字簽名
  • Base64

三、框架

  • Shiro
  • SpringSecurity

四、受權認證

  • RBAC
  • OAuth2.0
  • OIDC
  • SAML
  • TLS全鏈路加密
  • JWT用戶認證
  • Check前置檢查
  • Quota配額管理
  • Telemetry遙測報告
  • 雙因素認證(2FA)
  • 單點登陸SSO

11、項目管理

一、開發設計

  • DDD領域驅動模型
  • Actor模式
  • 響應式編程
  • DODAF2.0
  • Serverless
  • Service Mesh

二、項目管理

  • 代碼規範
  • 敏捷開發
  • 極限編程
  • 結對編程
  • RUP
  • SCRUM
  • PDCA循環質量管理
  • FMEA管理模式

三、架構管理

  • DevOps
  • OpenGroup
  • ABSD架構方法論
  • 架構設計原則
  • 異地多活
  • Knative彈性伸縮

12、大數據雲計算

一、流式計算

  • storm
  • Flink
  • KafkaStream

二、Hadoop

  • HDFS
  • MapReduce
  • Yarn
  • Spark

十3、開發工具

  • IDEA
  • VSCode
  • VIM
  • Gitlab
  • Navicat
  • XShell
  • postman
  • Filezilla
  • Fiddler

十4、學習資源

一、視頻網站

  • B站
  • 慕課網
  • 中國大學MOOC網

二、博客社區

  • CSDN
  • 開源中國
  • 簡書
  • 思否
  • 掘金
  • 博客園
  • 阿里雲社區
  • 開發者頭條
  • Medium

三、技術手冊

  • W3Cschool
  • Runoob.com
  • 慕課網教程手冊

四、行業資訊

  • 知乎
  • stackoverflow

五、代碼託管

  • github
  • gitee
  • coding

六、電子書網站

  • gitbook
  • aibooks
  • 書棧網
  • 搬書匠
  • 鳩摩搜索
  • IT-ebooks國外免費

七、程序員交流網站

  • V2EX
  • 知乎

八、雲服務器

  • 阿里雲
  • 騰訊雲
  • 百度雲
  • 華爲雲
  • 七牛雲
  • 西部數據
  • 金山雲

九、面試刷題

  • LinkCode
  • LeetCode
  • 牛客網

十、找工做

  • 100offer
  • 拉勾網

十一、數據資源下載

  • 國家數據
  • MSDN
  • PUDN
  • OPSX阿里巴巴開源鏡像
  • TUNA清華開源軟件
  • 163網易開源鏡像

十二、編程外包

  • 大神部落
  • 程序員客棧
  • 碼市
  • 開源衆包

本內容爲初版,後序將繼續更新。github

相關文章
相關標籤/搜索