路线-①
1.基础阶段
java基本语法、常用类String,包装类,时间,大数计算等等。
java集合【适当debug跟进源码,list,set,map,queue,栈等等】
java多线程【各种锁、线程间通信、线程安全的集合类、进程与线程、ThreadLocal,CompletableFuture.....】
网络编程 【阻塞式io,同步非阻塞io】
java反射的使用
各大lts版本的jdk的新特性。 jdk8. 11. 17. 21
2.数据库阶段
mysql、sqlserver、oracle。【会一即可】
sql的查询语句(多表联查、子查询、聚合函数等等)、更新语句、删除语句编写。【不要使用gpt、等ai辅助】
数据库表索引、失效场景
数据库的事务
如何设计数据库
数据库死锁问题【如何产生的、如何破解】
sql语句分析【慢查询优化】
数据库表太大了怎么办?分库分表,怎么分?
3.框架使用阶段
① mybatis
orm是啥?
mybatis基本使用
mybatis的缓存机制
mybatis的xml是如何与mapper接口关联起来的,为什么只写一个mapper接口就可以了
动态SQL
② Spring
是啥? 依赖注入?
IOC是什么,AOP又是什么
spring常用的注解有什么
spring数据库事务,隔离级别,传播机制,事务可能会失效,哪些情况失效
动态代理
③ SpringMVC
执行流程,原理,过程中用到的核心类和对象
相应的注解有哪些
拦截器
异常处理?
表单验证?
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-validation</artifactId>
</dependency>
④ SpringBoot
springboot的使用。
何为自动配置?解释一下其原理呗。
配置文件的加载顺序。 properties, yml......
SpringBoot使用aop功能。 【advice】
springboot自带的定时任务
springboot的异步任务
java的spi机制、SpringBoot的spi机制, 用springboot的这个机制定义自己的starter
springboot 的启动流程
⑤ Netty
netty的基本使用。【网络通信框架 -- 使用netty写一个即时通讯系统】
netty的线程模型
NioEventGroupLoop,Channe,ChannelHandler,Channelpipeline
ByteBuf、ChannelHandlerContext
入站处理器、出站处理器
各种编解码器等等
netty默认支持的那些协议
⑨ end.设计模式
重点的
单例模式
代理模式【动态代理(jdk、cglib)、静态代理】
策略模式
责任链模式
观察者模式
工厂模式
模板方法
适配器模式【比如在netty中 -- ChannelInboundHandlerAdapter】
4.各种中间件阶段
①Redis
基本的五大数据类型【string, list, set, zset, hash】,以及他们的使用场景
特殊的数据类型 bitmap, Geospatial【地理位置】,Hyperloglog【用的比较少】,他们的使用场景有哪些
redis的内存淘汰机制
redis的持久化机制,rdb,aof
redis做消息队列【list虽然可以但不是最佳方式,stream】
redis分布式锁
redis缓存中的问题:缓存击穿、缓存穿透、缓存雪崩等等
布隆过滤器
redis命令的原子性?
redis事务?
②Nginx
会配置即可
主要的:【反向代理,负载均衡】
自己在windows电脑上装一个,随便配一配
nginx还可以与lua脚本配合。见 https://www.cnblogs.com/jackjavacpp/p/18624920
③MQ消息队列
rabbitmq, rocketmq,kafka
在自己的机器上搭建上面的mq【rabbit、 rocket】。
消息队列的作用,为什么要用?
mq与springboot的整合
消息积压的问题怎么解决?
订单超时半小时未支付?【可以结合mq解决】
消息幂等性问题
两个mq的模型分别是什么样子的?
死信队列和延迟队列?
生产者的消息投递?
rabbitmq的几种模型?
如何保证消息的顺序消费?rocketmq的顺序消息?
rocketmq的事务消息?
如何避免消息丢失的呢?
④es搜索引擎
es的倒排索引
es的ik分词器
es的拼音分词器
es的搜索是怎么样的?
es写数据的过程?读数据的过程?
5.微服务阶段
①注册中心、配置中心
Eureka,nacos,zookeeper
②网关
spring Gateway
③Sentinel
基本使用
待更新。。
④分布式事务seata
分布式事务的实现方式?
seata的使用
⑤服务间通信【rpc】
dubbo
openfeign
⑥服务链路追踪
zipkin
⑦服务监控
springBootAdmin
Prometheus
6.计算机网络
Tcp, UDP
http, ajax轮询, websocket
Ip
网络建立连接、与断开连接【三次握手、四次挥手,为什么?】
7.算法刷题阶段
看leetcode去
8.手写框架、看源码阶段
【自定义rpc框架】
开源地址:https://gitee.com/quercus-sp204/all-rpc
【看源码】
https://zzkenyon.github.io/
【图个乐子】
别来无恙✲ - 博客园
https://www.cnblogs.com/jackjavacpp