Java后端知识体系(完整版)
2021-07-28 22:54:08 0 举报
AI智能生成
Java后端最全知识体系,包含推荐书籍
作者其他创作
大纲/内容
基础重点(必须掌握)
Java语言
语言基础
基础语法
面向对象
常用API
异常处理
集合
IO
多线程
网络编程
泛型
反射
注解
JVM
类加载机制
双亲委托
字节码执行机制
JVM内存模型
堆区
虚拟机栈
方法区
GC垃圾回收
JVM性能监控与故障定位
JVM调优
多线程、锁、并发
并发编程基础
线程池
锁
乐观锁、悲观锁
互斥锁、共享锁
可重入锁、偏向锁
轻量级锁、CAS与自旋锁
并发容器
原子类
JUC并发工具类
网络编程
学习路径
Socket API + 多线程 + 网络模型/IO模型 + IO复用
Netty
核心点
进程间通信方式:信号量、管道、共享内存、socket 等
多线程编程:互斥锁、条件变量、读写锁、线程池等
五大 IO 模型:同步、异步、阻塞、非阻塞、信号驱动
高性能 IO 两种模式:Reactor 和 Proactor
IO 复用机制:epoll、select、poll(破解 C10K 问题的利器)
Java源码
数据库/SQL
SQL语句
手写SQL
联表
聚合
SQL语句优化
事务、隔离级别
索引
锁
数据结构与算法
数据结构
字符串
数组
链表
栈
队列
二叉树
堆
哈希
算法
十大排序
查找、二分
贪心
分治
动态规划
回溯
设计模式
单例
工厂
代理
策略
模板方法
观察者
适配器
责任链
建造者
。。。。
计算机网络
HTTP、TCP、IP、ICMP、UDP、DNS、ARP
IP地址、MAC地址、OSI七层模型(或者 TCP/IP 五层模型)
HTTPS安全相关的:数字签名、数字证书、TLS
常见网络攻击:局域网ARP泛洪、DDoS、TCP SYN Flood、XSS等
TCP协议(最重要)
TCP协议
三次握手、四次挥手
状态转换
TCP状态中TIME_WAIT
拥塞控制
快速重传、慢启动
问题
TCP 如何实现可靠传输的(画外音:如何基于 UDP 实现可靠传输
TCP 连接建立为什么不是两次握手(画外音:三次握手的充分必要性说明
TIME_WAIT 的存在解决了什么问题,等待时间为什么是 2 MSL
核心
可靠传输 + 高效传输(流量控制和窗口管理)
HTTP、HTTPS
从 URL 输入到页面展现到底发生什么
操作系统
进程管理
并发、同步互斥、锁
内存管理
文件系统
重点
OS四大模块的理论知识
进程与线程管理
内存管理
IO与文件系统
设备管理
了解Linux内核部分实现原理
内存管理
进程管理
虚拟文件系统
与编程最密切
内存
进程
IO
认知
操作系统由哪些构成
进程的状态、切换、调度
进程间通信方式(共享内存、管道、消息)
进程和线程的区别
线程的实现方式(一对一、多对一等)
互斥与同步(信号量、管程、锁)
死锁检测与避免
并发经典的问题:读者写者、哲学家就餐问题
为什么需要虚拟内存,MMU 具体如何做地址转换的
内存为什么分段、分页
页面置换算法
文件系统是如何组织的
虚拟文件系统(VFS)是如何抽象的
应用框架
后端
JSP、Servlet
Spring家族
Spring
IOC
AOP
Spring MVC
MyBatis
Spring Boot
打jar包
内嵌Tomcat
微服务架构
知识点
自动配置、开箱即用
整合Web
整合数据库(事务问题)
整合权限
Shiro
SpringSecurity
各种中间件
缓存
MQ
RPC框架
Dubbo
NIO框架
Netty
Spring Cloud
Netflix
Eureka
服务治理组件,包括服务端的注册中心和客户端的服务发现机制
Ribbon
负载均衡的服务调用组件,具有多种负载均衡调用策略
Hystrix
服务容错组件,实现了断路器模式,为依赖服务的出错和延迟提供了容错能力
Feign
基于Ribbon和Hystrix的声明式服务调用组件
Zuul
API 网关服务,过滤、安全、监控、限流、路由
Alibaba
Nacos
阿里巴巴开源产品,一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台
Sentinel
面向分布式服务架构的轻量级流量控制产品,把流量作为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性
RocketMQ
一款开源的分布式消息系统,基于高可用分布式集群技术,提供低延时的、高可靠的消息发布与订阅服务
Dubbo
Apache Dubbo™ 是一款高性能 Java RPC 框架,用于实现服务通信
Seata
阿里巴巴开源产品,一个易于使用的高性能微服务分布式事务解决方案
Config
分布式配置中心。配置管理工具,支持使用 Git 存储配置内容,支持应用配置的外部化存储,支持客户端配置信息刷新、加解密配置内容等。
Bus
事件、消息总线,用于在集群(例如,配置变化事件)中传播状态变化,可与 Spring Cloud Config 联合实现热部署。
Consul
服务注册和配置管理中心
Security
安全工具包,对Zuul代理中的负载均衡OAuth2客户端及登录认证进行支持
Sleuth
SpringCloud应用程序的分布式请求链路跟踪,支持使用Zipkin、HTrace和基于日志(例如ELK)的跟踪
Stream
轻量级事件驱动微服务框架,可以使用简单的声明式模型来发送及接收消息,主要实现为Apache Kafka及RabbitMQ
Task
用于快速构建短暂、有限数据处理任务的微服务框架,用于向应用中添加功能性和非功能性的特性
Zookeeper
服务注册中心
Gateway(可替代 Zuul)
Spring Cloud Gateway 是 Spring 官方基于 Spring 5.0,Spring Boot 2.0 和 Project Reactor 等技术开发的网关,Spring Cloud Gateway 旨在为微服务架构提供一种简单而有效的统一的 API 路由管理方式。Spring Cloud Gateway 作为 Spring Cloud 生态系中的网关,目标是替代 Netflix Zuul,其不仅提供统一的路由方式,并且基于 Filter 链的方式提供了网关基本的功能,例如:安全,监控/埋点,和限流等。
OpenFeign(可替代 Feign)
OpenFeign 是 Spring Cloud 在 Feign 的基础上支持了 Spring MVC 的注解,如 @RequesMapping等等。OpenFeign 的 @FeignClient 可以解析 SpringMVC 的 @RequestMapping 注解下的接口,并通过动态代理的方式产生实现类,实现类中做负载均衡并调用其他服务。
项目经验
总结
中间件
缓存
Redis
5大数据类型
事务
消息通知
管道
持久化
集群
消息
RabbitMQ
RocketMQ
Kafka
搜索
ElasticSearch
前端
基础套餐
三大件
HTML
CSS
JavaScript
基础库
jQuery
Ajax
模板框架
JSP
Thymeleaf
FreeMaker
组件化框架
Node
VUE
React
Angular
开发工具
集成开发环境
Eclipse
IDEA
VSCode
Linux系统
Linux常用命令
基本Shell脚本
代码管理工具
Git
Git命令和使用
SVN
项目管理/构建工具
Maven
Gradle
运维知识
Web服务器
Nginx
应用服务器
Tomcat
容器化技术
Docker
Kubernetes(K8S)
管理运维容器
持续集成、持续发布
Jenkins
代码质量检测
Sonar
日志收集、分析
ELK
CDN加速
收藏
0 条评论
下一页