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

Wesley13
• 阅读 672

本文整理于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和
待兔 待兔
4个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Wesley13 Wesley13
3年前
Java面试通关要点汇总Java基础、集合、数据库、spring框架、分布式、微服务(备战秋招)
Java面试通关要点汇总Java基础、集合、数据库、spring框架、分布式、微服务(备战秋招)。这里,结合自己过往的面试经验,整理了一些核心的知识清单,帮助大家更好地回顾与复习Java核心技术。本文分享给需要面试刷题的朋友,也祝愿大家顺利拿到自己想要的offer,这份资料主要包含了Java基础,数据结构,jvm,多线程等等,由于篇
Wesley13 Wesley13
3年前
Java集合详解1:一文读懂ArrayList,Vector与Stack使用方法和实现原理
本文非常详尽地介绍了Java中的三个集合类ArrayList,Vector与Stack《Java集合详解系列》是我在完成夯实Java基础篇的系列博客后准备开始写的新系列。这些文章将整理到我在GitHub上的《Java面试指南》仓库,更多精彩内容请到我的仓库里查看https://github.com/h2pl/JavaTutorial(
Wesley13 Wesley13
3年前
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
3年前
Linux日志安全分析技巧
0x00前言我正在整理一个项目,收集和汇总了一些应急响应案例(不断更新中)。GitHub地址:https://github.com/Bypass007/EmergencyResponseNotes本文主要介绍Linux日志分析的技巧,更多详细信息请访问Github地址,欢迎Star。0x01日志简介Lin
Wesley13 Wesley13
3年前
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/)