The Road To Bald Man!
[TOC]
The Road To Bald Man!
一、编程基础
Java基础
- 基础语法
- 面向对象
- 接口
- 容器
- 异常
- 泛型
- 反射
- 注解
- I/O
- 图形化
- 集合框架(源码)
- List
- ArrayList
- LInkedList
- Set
- HashSet
- TreeSet
- Map
- HashMap (JDK 8 的实现与之前的版本不同)
- TreeMap
- ConcurrentHashMap
- Queue
- ConcurrentLinkedQueue
- Stack
- Collections的SynchronizedXXX方法
- List
- 高级特性
- 泛型
- 多态的实现原理
- Lambda
- 并发编程
- Executor框架
- Fork/join
- 数据结构
- ConcurrentHashMap
- ConcurrentLinkedQueue
- 线程池
- 线程状态
- Lock/syschronized
- 原子操作类
- 并发工具类
- CountDownLatch
- Semaphore
- CyclicBarrier
- Exchanger
- 网络编程
- Socket
- IO
- BIO
- NIO
- AIO
- 序列化
- JDK自带
- Google protobuf
- RPC
- RMI
- Thrift
- Dubbo
- gRpc
JVM
- 认识Java虚拟机(默认HotSpot实现)
- 类加载机制(知道双亲委派模型)
- 字节码执行机制
- 内存模型
- GC
- 回收算法
- 垃圾收集器
- jvm性能监控与故障定位
- 调优
- 工具
- jstack
- jmap
- jconsole
并发、多线程
- 并发编程基础
- 线程池
- 锁
- 并发容器
- 原子类
- juc并发工具类
数据结构和算法
数据结构
字符串
- 查找匹配(KMP)
- 正则
数组
链表
栈
队列
树
- 二叉树
- 前序遍历
- 中序遍历
- 后序遍历
- 二叉树
B Tree/B+Tree
红黑树
哈希
- 哈希冲突
- k-v
图
- BFS
- DFS
算法
- 查找
- 动态规划
- 分治
- 回溯
- 排序
- 内部排序
- 插入排序
- 直接插入排序
- 希尔排序
- 插入排序
- 选择排序
- 简单选择排序
- 堆排序
- 内部排序
- 交换排序
- 冒泡排序
- 快速排序
- 归并排序
- 基数排序
- 桶排序
- 外部排序
- 贪心
计算机网络
- TCP、UDP
- ARP
- IP、ICMP
- DNS、HTTP、HTTPS
- OAuth2.0
- REST
- Session、Cookie
数据库/SQL
- 关系型数据库
- MySql
- 引擎
- InnoDB(支持事务)
- MyISAM(支持全文索引)
- 引擎
- 分库分表
- Cobar
- Mycat
- MySql
- SQL优化
- 索引
- 主键索引
- 组合索引
- 索引
- explain
- 存储过程
- SQL注入
- 使用#而不使用$
- 事务隔离级别(ACID)
- 原子性
- 一致性
- 隔离性
- 持久性
- 锁
- 表锁
- 行锁
- 乐观锁
- 悲观锁
- Oracle
- SQL sever
- 数据库设计
- 范式
- 第一范式
- 第二范式
- 第三范式
- 范式
- E-R图
- NoSql
- Memcached
- 文档模型
- 分片
- Memcached
- Redis
- MongoDB
- HBase
- JDBC
设计模式
- 七大原则
- 单一职责原则
- 接口隔离原则
- 依赖倒转原则
- 里氏替换原则
- 开闭原则
- 迪米特法则
- 合成复用原则
- 23种设计模式
- 创建型模式:
- 单例模式
- 抽象工厂模式
- 原型模式
- 建造者模式
- 工厂模式
- 结构性模式:
- 适配器模式
- 桥接模式
- 装饰模式
- 组合模式
- 外观模式
- 享元模式
- 代理模式
- 行为型模式:
- 模板方法模式
- 命令模式
- 访问者模式
- 迭代器模式
- 观察者模式
- 中介者模式
- 备忘录模式
- 解释器模式
- 状态模式
- 策略模式
- 职责链模式
- 创建型模式:
操作系统
- 线程、进程
- 并发、锁
- 内存管理和调度
- I/O原理
二、开发工具
IDE
- IDEA
- Eclipse
- VSCode
Linux
发行版(Server)
- Ubuntu
- RedHat
- CentOS
常用命令
- 1、查看正则执行的进程
- 2、查询指定的进程ID打开的文件
- 3、杀死指定PID的进程
- 4、计算文件的行数、字数或字符数
- 5、显示进程信息,并实时更新
- 6、调用top命令的"-H"选项,该选项会列出所有的Linux线程
- 7、查看用户username的进程所打开的文件
- 8、在ps命令中,"-T"选项可以开启线程查看,下面的命令列出了由进程号为进程创建的所有线程
- 9、比较两个文件
- 10、后台执行、通过在shell中输入exit来退出终端
- 11、查看正在执行的任务
- 12、多线程执行
- 13、查看进程和线程的树形结构关系
- 14、ps命令-L参数显示进程,并尽量显示其LWP(线程ID)和NLWP(线程的个数)
- 15、ps命令查看线程在哪个CPU上运行
- 16、取出文件的前面几行
- 17、动态查看文件变化
- 18、退出 tail -f
- 19、tail程序放到后台去等处理完其他事情,再用fg命令将tail命令转到前台来
- 20、查看文件夹和子目录的大小
- 21、设置定时任务
- 22、重命名文件和文件夹
- 23、复制、剪切、清空和删除
- 24、Linux通信
代码管理工具
- Git
- SVN
项目构建
- Maven
- Gradle
三、前端技术
HTML、CSS、JavaScript
JQuery
Ajax
JSP、JSTL
Thymeleaf
FreeMarker
VUE、React
Node.js
四、技术框架
Spring全家桶
Spring
- IOC
- AOP
- Transaction
- 声明式事务底层原理
- Spring事务处理机制
- 事务的传播与监控
- 基于Springjdbc手写Orm框架
- 常用注解
- @Component:标识该类需要Spring初始化时自动装配,可以时一个普通的Bean
- @Resource:被该注释修饰的字段或方法,Spring会通过by-name的方式自动注入
- @Required:应用于bean属性的setter方法,它表明受影响的bean属性在配置时必须放在XML配置文件中,否则容器就会抛出一个BeanInitializationException异常
- @Autowired:可以在setter方法中被用于自动连接bean
- @Value:可以为普通方法和构造方法中的参数或者字段指定一个默认的值
- @Qualifer:指定哪个真正的bean将会被装配,应用于一个接口有多个实现类的情况
- @Service:标注一个业务逻辑处理类
- @Repository:标注一个DAO组件类
- @RequestMapping:指定请求路径
- @Controller:标注一个控制器组件类
- @ResponseBody:返回json结果数据
- 设计模式
- 简单工厂模式
- 工厂方法模式
- 抽象工厂模式
- 单例模式
- 原型模式
- 代理模式
- jdk动态代理模式
- cglib动态代理模式
- 组合模式
SpringMVC
- MVC原理介绍
- 与IOC容器整合原理
- Handlermapping实现原理
- Handleradapter实现原理
- Viewresolver实现原理
- Controller调用原理
- 动态参数匹配原理
- SpringMVC与Struts2对比分析
- 手写实现SpringMVC框架
SpringBoot
- 自动配置、开箱即用
- 整合Web
- 整合数据库(事务问题)
- 整合权限
- Shiro
- SpringSecurity
- 整合各种中间件
- 缓存
- MQ
- RPC框架
- NIO框架
- 等。。。
SpringCloud
服务器软件
Web服务器
- Nginx
应用服务器
- Tomcat
- Jetty
- Undertow
中间件
缓存
- Redis
- 5大数据类型
- 事务
- 消息通知
- 管道
- 持久化
- 集群
- Memcached
消息队列
- RocketMQ
- RabbitMQ
- Kafka
RPC架构
- Dubbo
- GRPC
- Thrift
- Netty
数据库
ORM层框架
- MyBatis
- 逆向工程
- 一对多,多对多嵌套查询
- 一级缓存、二级缓存使用场景及选择策略
- 与Spring继承Spring-Mybatis.Jar分析
- Spring继承下的Sqlsession与Mapper
- Mybaits事务
- 分析Mybatis动态代理的真正实现
- 手写实现Mybatis
- 实现配置文件加载流程
- 实现封装jdbc的执行流程
- 设计模式
- 构建者模式
- 简单工厂模式
- 工厂方法模式
- 抽象工厂模式
- 单例模式
- Hibernate
- JPA
连接池
- Druid
- HikariCP
- C3P0
分库分表
- MyCat
- Sharding-JDBC
- Sharding-Sphere
搜索引擎
- Solr
- ElasticSearch
分布式微服务
- 服务发现/注册
- Eureka
- Consul
- Zookeeper
- Nacos
- 网关
- Zuul
- Gateway
- 服务调用(负载均衡)
- Ribbon
- Feign
- 熔断/降级
- Hystrix
- 配置中心
- Config
- Apollo
- Nacos
- 认证和鉴权
- Shiro
- SpringSecurity
- OAuth2
- SSO
- 分布式事务
- JTA接口
- Atomikos组件
- JTA接口
- 2PC、3PC
- XA模式
- TCC模式
- tcc-transaction
- ByteTCC
- EasyTransaction
- Seata
- SAGA模式
- ServiceComb
- Seata
- LCN模式
- tx-lcn
- 任务调度
- Quartz
- Elastic-Job
- 链路追踪与监控
- Zipkin
- Sleuth
- Skywalking
- 日志分析与监控
- ELK
- ElasticSearch
- Logstash
- Kibana
- ELK
- 虚拟化/容器化
- 容器技术
- Docker
- 容器技术
- 容器编排技术
- Kubernetes
- Swarm
五、运维
Web服务器
- Nginx
应用服务器
- Tomcat
- Jetty
- Undertow
CDN加速
持续集成/持续发布
- Jenkins
代码质量检查
- sonar
日志收集/分析
- ELK
六、安全加密
单项散列算法
- MD5
- SHA
对称加密
- DES
非对称加密
- RSA
- HTTPS
七、业务解决方案
八、源码
九、植发
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Joey!