java小白到架构师技术图谱(整理全网,持续更新)

Wesley13
• 阅读 545

本文整理于github上各大star大神仓库。并根据自己的理解重新进行了整理

本文已经收录于https://github.com/fengdongdongwsn/architect-java

一、计算机基础

1、数据结构

(1)基本数据结构

  • 数据结构基本概念(时间复杂度和空间复杂度的计算方法)

  • 数组

  • 链表

  • 集合

  • 队列

  • 关联数组

  • 跳表

  • 倒排索引

  • BitSet

(2)树

  • 二叉树

  • 平衡二叉树

  • 完全二叉树

  • 哈弗曼树

  • 二叉查找树

  • B、B+、B*树

  • LSM树

  • 字典树

  • 红黑树

  • 线段树

(3)图

  • 最小生成树

  • 最短路径算法

  • 拓扑排序

  • 深搜和广搜

(4)排序算法

  • 选择排序

  • 冒泡排序

  • 插入排序

  • 快速排序

  • 归并排序

  • 希尔排序

  • 基数排序

  • 计数排序

  • 桶排序

  • 堆排序

  • 排序算法使用场景特点总结

(5)查找算法

  • 顺序查找

  • 二分查找

  • 插值查找

  • 斐波那契查找

  • 树表查找

(6)常见算法

  • KMP算法

  • 贪心算法

  • 回溯算法

  • 剪枝算法

  • 动态规划

  • 并查集

  • 朴素贝叶斯

  • 递归算法

  • 符号表

  • 布隆过滤器

2、计算机网络

(1)协议

  • OSI七层协议

  • TCP/IP协议

  • HTTP协议

(2)网络模型

  • 阻塞式IO

  • 非阻塞式IO

  • 复用IO

  • 信号驱动IO

  • 异步IO

  • Epoll模型

  • javaNIO

  • javaAIO

  • kqueue

(3)序列化

  • java序列化

  • protoBuf

  • protoStuff

  • avro

  • Hessian

3、操作系统

(1)基本知识

  • 操作系统的四个特征

  • 操作系统的功能

(2)进程与线程

  • 进程的概念与分类

  • 线程的概念与分类

  • 进程与线程的区别

  • 进行的状态转换

  • CPU调度算法

  • 管程

  • 协程

  • 进程间的通信方式

  • 进程间同步问题

  • 生产者消费者问题

  • 哲学家就餐问题

  • 读者-写者问题

  • 锁死的四个必要条件

  • 死锁处理

(3)内存管理

  • 段式管理

  • 页式管理

  • 段页式管理

  • 页面调度算法

(4)其他

  • 虚拟内存和逻辑内存

  • 静态链接和动态链接

  • 缓存

  • 僵尸进程与孤儿进程

二、java基础

1、面向对象基础

  • 继承

  • 封装

  • 多态

  • 接口

  • 抽象类

2、java集合

  • 总体框架

  • Collection

  • ArrayList

  • LinkedList

  • Vector

  • Stack

  • 快速失败和快速安全

  • HashMap

  • TreeMap

  • LinkedHashMap

  • HashSet

  • TreeSet

  • Hashtable

  • WeakHashMap

3、关键字和类

  • transient

  • instanceof

  • static

  • this

  • super

  • void

  • final

  • String

  • String为什么不可变

  • String、StringBuilder、StringBuffer区别

  • String到底新建了几个对象

4、java高级特点

  • 注解

  • 反射

  • 泛型

  • 异常

  • 枚举

  • IO机制

  • 编码转换

  • java8新特性

  • java11新特性

5、并发库

(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)线程池

  • 线程池的几种状态切换

  • 线程池的参数

  • 线程池的启动流程

  • 线程池的分类

  • 线程池的大小设置

6、JVM

  • java内存结构(jdk1.7和1.8)

  • 垃圾回收机制

  • 类加载机制

  • 内存分类和回收

  • 四种引用(强、软、弱、虚)

  • 内存溢出

  • JVM调优工具

  • 垃圾回收器

  • ZGC的认识

  • JNI

  • 内存逃逸

三、必备基础

1、设计模式

  • 创建型模式

  • 结构性模式

  • 行为性模式

  • 设计模式的六种原则

  • MVC模型

  • MVVC模型

  • UML

  • 康威定理

2、Linux

  • Linux目录结构

  • 常见命令

  • 文件系统管理

  • 用户系统管理

  • 进程管理

  • 网络管理

  • 备份与恢复

  • 文本文件处理命令

  • shell编程

3、代码工具

  • Git

  • Maven

  • gradle

  • 日志框架

  • Junit

四、数据库

1、mysql

(1)基本知识

  • 三大范式

  • 数据库、数据表、字段的增删改查基本操作

  • 分区表

  • 视图

  • 外键约束

  • 游标

  • 变量

  • 存储过程

  • 函数

  • 字符集

(2)存储引擎

  • InnoDB

  • MyISAM

  • 转换表的引擎

(3)事务

  • 隔离级别

  • 多版本并发工具

  • 分布式事务

  • ACID特性

(4)索引

  • 聚集索引

  • 非聚集索引

  • 复合索引

  • 底层实现原理

(5)锁

(6)测试

(7)优化方案

  • 数据类型优化

  • 索引优化

  • 查询性能优化

  • mysql配置优化

  • 硬件优化

(8)高可用方案

(9)复制迁移

2、Redis

  • 持久化机制

  • 缓存三种问题(穿透、击穿、雪崩)

  • 内存淘汰策略

  • 哨兵机制

  • 集群方案

  • 复制原理

3、MongoDB

4、Hbase

五、常用基本框架

1、servlet

2、Spring系列家族

3、Mybatis

4、JPA

5、Netty

6、websocket

六、运维统计相关

1、平台监控

  • zabbix、Nagios、Ganglia等

  • Linux命令监控:top、sar、tsar、nload等

  • JVM监控工具

2、APM

3、持续集成

  • 持续集成工具Jenkins

  • TeamCity

  • Travis CI

  • GitLab CI

  • 环境分离

4、容器相关

  • Docker

  • K8S

5、虚拟化

  • KVM

  • Xen

  • OpenVZ

6、自动化运维

  • Ansible

  • puppet

  • chef

7、测试

  • 单元测试

  • 压力测试

  • 灰度测试

  • A/B测试

  • 蓝绿测试

  • TDD测试理论

  • 全链路测试

七、中间件

1、web

  • Nginx

  • OpenRestry

  • Tengine

  • ApacheHttpd

2、服务器

  • Tomcat

  • Jetty

  • WebLogic

  • JBoss

3、缓存

  • 本地缓存

  • 客户端缓存

  • web缓存

  • Memcached

  • Redis

  • Tair

  • cellar

4、消息队列

  • Kafka

  • ActiveMQ

  • RocketMQ

  • RabbitMQ

  • Redis消息队列

  • ZeroMQ

5、RPC

  • Dubbo

  • Thrift

  • gRPC

  • java的RMI

6、定时任务

  • Quartz

  • cron定时调度

  • java定时任务

  • Elastic-job

  • opencron

  • LTS

7、数据库中间件

  • Mycat

  • Sharding Jdbc

8、搜索引擎

  • Lucene

  • Elasticsearch

  • Solr

  • sphinx

八、微服务

1、微服务框架

  • Springcloud

  • SpringCloud Alibaba

  • Dropwizard

  • Akka

2、注册中心

  • Eureka

  • Zookeeper

  • Consul

3、服务调用

  • Feigh

  • restTemplete

4、负载均衡

  • Ribbon

5、网关

  • Gateway

  • kong

  • zuul

6、配置中心

  • Zookeeper

  • Apollo

  • Springcloud Config

7、链路跟踪

  • SpringCloud Bus

  • SpringCloud Sleuth

  • Zipkin

  • Dapper

  • log-based

  • HTrace

九、分布式

1、分布式理论

  • CAP理论

  • BASE理论

  • 幂等性

  • 分布式锁

  • redis实现

  • 数据库实现

  • Zookeeper实现

2、一致性算法

  • Paxos

  • ZAB

  • Raft

  • Gossip

  • 两阶段提交协议

  • 节点选举策略

  • 一致性hash算法

3、分布式文件系统

  • HDFS

  • fastDFS

4、分布式ID

  • Snowflake算法

  • Flicker算法

  • UUID

  • MongoDB实现

5、分布式事务

  • 多阶段提交

  • TCC补偿事务

  • 本地消息表

  • MQ事务消息

  • 最大努力通知

6、稳定性高可用方案

  • 软硬件负载均衡

  • 限流

  • 容灾

  • 平滑启动

十、安全

1、web安全

  • XSS

  • CRSF

  • SQL注入

  • DDOS

  • DNS攻击

  • 脚本注入

  • 序列化攻击

  • 中间人攻击

2、加密解密算法

  • 对称加密

  • 非对称加密

  • hash算法

  • 数字签名

  • Base64

3、框架

  • Shiro

  • SpringSecurity

4、授权认证

  • RBAC

  • OAuth2.0

  • OIDC

  • SAML

  • TLS全链路加密

  • JWT用户认证

  • Check前置检查

  • Quota配额管理

  • Telemetry遥测报告

  • 双因素认证(2FA)

  • 单点登录SSO

十一、项目管理

1、开发设计

  • DDD领域驱动模型

  • Actor模式

  • 响应式编程

  • DODAF2.0

  • Serverless

  • Service Mesh

2、项目管理

  • 代码规范

  • 敏捷开发

  • 极限编程

  • 结对编程

  • RUP

  • SCRUM

  • PDCA循环质量管理

  • FMEA管理模式

3、架构管理

  • DevOps

  • OpenGroup

  • ABSD架构方法论

  • 架构设计原则

  • 异地多活

  • Knative弹性伸缩

十二、大数据云计算

1、流式计算

  • storm

  • Flink

  • KafkaStream

2、Hadoop

  • HDFS

  • MapReduce

  • Yarn

  • Spark

十三、开发工具

  • IDEA

  • VSCode

  • VIM

  • Gitlab

  • Navicat

  • XShell

  • postman

  • Filezilla

  • Fiddler

十四、学习资源

1、视频网站

  • B站

  • 慕课网

  • 中国大学MOOC网

2、博客社区

  • CSDN

  • 开源中国

  • 简书

  • 思否

  • 掘金

  • 博客园

  • 阿里云社区

  • 开发者头条

  • Medium

3、技术手册

  • W3Cschool

  • Runoob.com

  • 慕课网教程手册

4、行业资讯

  • 知乎

  • stackoverflow

5、代码托管

  • github

  • gitee

  • coding

6、电子书网站

  • gitbook

  • aibooks

  • 书栈网

  • 搬书匠

  • 鸠摩搜索

  • IT-ebooks国外免费

7、程序员交流网站

  • V2EX

  • 知乎

8、云服务器

  • 阿里云

  • 腾讯云

  • 百度云

  • 华为云

  • 七牛云

  • 西部数据

  • 金山云

9、面试刷题

  • LinkCode

  • LeetCode

  • 牛客网

10、找工作

  • 100offer

  • 拉勾网

11、数据资源下载

  • 国家数据

  • MSDN

  • PUDN

  • OPSX阿里巴巴开源镜像

  • TUNA清华开源软件

  • 163网易开源镜像

12、编程外包

  • 大神部落

  • 程序员客栈

  • 码市

  • 开源众包

本内容为第一版,后序将继续更新。

java小白到架构师技术图谱(整理全网,持续更新)

本文分享自微信公众号 - 愚公要移山(fdd_sxu_nwpu)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

点赞
收藏
评论区
推荐文章
一只编程熊 一只编程熊
3年前
ACM金牌选手整理的【LeetCode刷题顺序】
算法和数据结构知识结构图首先,了解算法和数据结构有哪些知识点,在学习中形成大局观,对学习和刷题十分有帮助。下面是我花了一天时间整理的算法和数据结构的知识结构,大家可以看看。<imgsrc"https://tva1.sinaimg.cn/large/008i3skNly1gsbvbwd5u1j30ys0u0tl6.jpg"alt"image202107
爱丽丝13 爱丽丝13
3年前
这些 JavaScript函数让你的工作更加 So Easy!
作者:YoussefZidan译者:前端小智来源:dev点赞再看,养成习惯本文GitHubhttps://github.com/qq44924588...(https://github.com/qq449245884/xiaozhi)上已经收录,更多往期高赞文章的分类,也整理了很多我的文档,和教程资料。欢迎Star和
待兔 待兔
1星期前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Wesley13 Wesley13
2年前
Java面试通关要点汇总Java基础、集合、数据库、spring框架、分布式、微服务(备战秋招)
Java面试通关要点汇总Java基础、集合、数据库、spring框架、分布式、微服务(备战秋招)。这里,结合自己过往的面试经验,整理了一些核心的知识清单,帮助大家更好地回顾与复习Java核心技术。本文分享给需要面试刷题的朋友,也祝愿大家顺利拿到自己想要的offer,这份资料主要包含了Java基础,数据结构,jvm,多线程等等,由于篇
Wesley13 Wesley13
2年前
Java集合详解1:一文读懂ArrayList,Vector与Stack使用方法和实现原理
本文非常详尽地介绍了Java中的三个集合类ArrayList,Vector与Stack《Java集合详解系列》是我在完成夯实Java基础篇的系列博客后准备开始写的新系列。这些文章将整理到我在GitHub上的《Java面试指南》仓库,更多精彩内容请到我的仓库里查看https://github.com/h2pl/JavaTutorial(
Wesley13 Wesley13
2年前
Java并发指南4:Java中的锁 Lock和synchronized
本文转载自并发编程网,侵删本系列文章将整理到我在GitHub上的《Java面试指南》仓库,更多精彩内容请到我的仓库里查看https://github.com/h2pl/JavaTutorial(https://www.oschina.net/action/GoToLink?urlhttps%3A%2F%2Fgithub.com%2
Stella981 Stella981
2年前
Linux日志安全分析技巧
0x00前言我正在整理一个项目,收集和汇总了一些应急响应案例(不断更新中)。GitHub地址:https://github.com/Bypass007/EmergencyResponseNotes本文主要介绍Linux日志分析的技巧,更多详细信息请访问Github地址,欢迎Star。0x01日志简介Lin
Wesley13 Wesley13
2年前
Java集合详解4:一文读懂HashMap和HashTable的区别以及常见面试题
《Java集合详解系列》是我在完成夯实Java基础篇的系列博客后准备开始写的新系列。这些文章将整理到我在GitHub上的《Java面试指南》仓库,更多精彩内容请到我的仓库里查看https://github.com/h2pl/JavaTutorial(https://www.oschina.net/action/GoToLink?urlht
黄忠 黄忠
1年前
算法与数据结构高手养成-求职提升特训课
算法和数据结构是计算机科学中最基础的两个概念,也是每个程序员必须掌握的核心技能。本文将介绍算法和数据结构的基本概念、分类和常见应用,并提供一些学习资源和实践建议,帮助读者深入理解和掌握这两个重要的概念。download:算法与数据结构高手养成求职提升特训课(https://www.666xit.com/4030/)
算法与数据结构高手养成-求职提升特训
数据结构:理解它的重要性与基本概念数据结构是计算机科学中非常重要的一个领域,无论是在软件开发、算法设计还是计算机科学研究中,都离不开数据结构。本文将介绍数据结构的基本概念以及为什么它如此重要。