背景
总结下作为Java后端开发人员需要掌握的技术栈;
对于一项技术要知道:是什么、解决了什么、怎么实现;
图
文本
Java基础
基本语法
面向对象
Java线程:Thread、线程池、ForkJoin、AQS、ThreadLocal、线程安全、共享与可见性、原子操作、同步与异步、锁
Java集合:Set、List、Queue、Map
JavaIO:BIO、NIO、AIO
Java反射
JavaWeb:Servlet、HttpClient
JDBC:用JDBC可以写出读写数据的代码、事务、回滚、Statement、PreparedStatement
JVM:类加载机制、内存模型、垃圾收集算法、垃圾回收器、jmap、jstack、jstat
JavaAgent:agent机制、instrument机制
Java字节码
数据结构与算法
线性结构
树形结构
排序算法
搜索算法
应用框架
SpringMVC
Spring
SpringBoot
SpringCloud
Mybatis
工具包:Netty、Log4J、Junit
存储
MySQL:SQL优化、B+树、分库分表、索引设计
Hadoop:Hdfs、Yarn、HBase、MapReduce
ES
运维
常用Linux命令:cat grep awk sed top netstat tail
Shell
Python
监控报警
设计
面向对象设计基本原则
设计模式
领域驱动
SOA
微服务
常见的架构设计:主从架构
网络
TCP/IP
Reactor
Proactor
HTTP:http、https协议
分布式
CAP
常见的设计取舍
中间件
RPC框架
MQ
缓存
数据库
ZK
工具
IDEA
Maven
Git
前端
HTML
JS
CSS
Ref
https://zhuanlan.zhihu.com/p/57141372
https://www.processon.com/diagrams